time-machine
examc
time-machine | examc | |
---|---|---|
2 | 2 | |
606 | 0 | |
- | - | |
8.6 | 0.0 | |
4 days ago | about 2 years ago | |
Python | C | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
time-machine
-
About time: how to unit test code that depends on time
Freezegun is pretty much unmaintained. You want time-machine https://github.com/adamchainz/time-machine
-
Running C unit tests with pytest
There are lots of good mocking fixtures available for pytest. I've used this one for clock stuff in the past: https://github.com/adamchainz/time-machine#pytest-plugin
examc
-
static_assert is all you need (no leaks, no UB)
There are other ways to do this. I made a proof of concept of using linker sections to allow you to sprinkle tests within the implementation inline once... https://github.com/cozzyd/examc (this is obviously not production-ready, just serves as a proof of concept).
Basically the idea is that the test code gets written to a different linker section that your test runner can iterate through, when tests are enabled.
-
Running C unit tests with pytest
Indeed, I just made a POC with compiler sections: https://github.com/cozzyd/examc
This implementation only works with gcc though probably (it uses the automatic __start_SECTION and __stop_SECTION that gcc generates but clang doesn't seem to... there are likely hacks to make this work anyway though).
What are some alternatives?
freezegun - Let your Python tests travel through time
TDD - See while you code
doublex
c_unit_tests - C unit tests with a small header-only library.
mock - The Python mock library
templight - Templight is a Clang-based tool to profile the time and memory consumption of template instantiations and to perform interactive debugging sessions to gain introspection into the template instantiation process.
betamax - A VCR imitation designed only for python-requests.
docker-images - Docker images for ci testing
httpretty - Intercept HTTP requests at the Python socket level. Fakes the whole socket module
headlock - An adapter for making C code testable from Python (see https://headlock.readthedocs.io/en/latest)
responses - A utility for mocking out the Python Requests library.
VCR.py - Automatically mock your HTTP interactions to simplify and speed up testing