List view
Right now there are several things about the internals that I want to improve on The good: - Interface: The CLI Interface has a pretty simple interface (as in exposed methods), and is both good-looking and well-tested. The MockInterface has been well reviewed and is extremely minimal. - Metadata: Well integrated into the entire project, a lot of work went into serialization and adding the dir listing. - MockFilesystem: Just the mock, really. It's been well reviewed and it's about as minimal as possible. Every single mocked file is usually mocking a one-liner method, which is exactly what we want to abstract during unit testing. The bad: - **utils/file.py:** the real filesystem operations are pretty messy, the validation for example has a lot of methods that seemingly do similar things. - **tests have no side-effects by default:** I want more enforcing of no side-effects, so I forced ALL tests to throw an exception with an explicit error when using file built-ins, calling print or running a sub-process. This broke a lot of tests. The pytest marks to allow using these functionalities needs to be clarified in the exception, the whole thing needs reviewing. - **re-named filesystem mocking fixture:** I re-named the `mock_all_file_operations` pytest fixture without refactoring. This broke about 80 tests. It's expected, I want to manually review every single test using the mock filesystem. - (optional) **Turn Filesystem into an interface:** Like with SolveigInterface that can have an explicit implementation and a mock that just overrides. Overall I dislike mocking. But for now, if it works, it works. I'm going to break the project fully during this point until the inner working is up to expectations, the mocks are/remain true to the idea of explicit mocking of minimal functionality, and all tests are fully reviewed and finally passing.
No due date