Uses a consistent temporary directory, allowing for the daemon to detect changes
VS Code config uses watchman
Daemon VS Code config watches /tmp/_metatests
Removed code that wrote a .gitignore file as it is obsolete
Added file_changes.py which contains non-test changes
Added another test file, test_file_changes.py
Added additional test cases including one that brings out the bug that was fixed
Fixed async tests being skipped. They for sure worked before but seemed to have broke when a temporary directory was used and pytest was no longer using the same config.
Refactors and fixes for the client / daemon:
The default jurigged logging is used again. Before a placeholder was used to avoid duplicated output, but it no longer appears to be needed. The behavior seems correct without any changes.
Reduced retries for waiting on the daemon to come up, from 1000 to 100. The 1000 value seemed excessive
Pytest arguments are passed from the client to the server when the server is automatically started. Note that includes tests to run, but the nature of the daemon results in it having no effect. This was needed because the server wasn't using the plugin and possibly other plugins or relevant plugin arguments that were provided to the client.
The server now returns an explicit stacktrace back to the client rather than using the built-in error handling of the XML RPC server. The XML RPC server was only giving the error and the error message, which can be insufficient.
The server no longer restores the current working directory. In the case of using temporary directories, the cwd would get deleted resulting in a cryptic file not found error after the tests successfully ran. Storing and restoring the cwd before and after test runs didn't seem to provide value.
Fixed bug where the hot reloading was attempting to access a global function that didn't exist, if the updated function was actually the method or static method of a class. This also resulted in a refactor of how function signatures are checked. It now pulls self.node rather than attempting to pull the old function from the global scope. The signatures are pulled from the AST, and then just the names of the arguments are copied for the purposes of detecting signature changes.
Added comments so its easier to trace args to where they get plugged in
Refactors and fixes for the metatests:
/tmp/_metatests
.gitignore
file as it is obsoletefile_changes.py
which contains non-test changestest_file_changes.py
Refactors and fixes for the client / daemon:
self.node
rather than attempting to pull the old function from the global scope. The signatures are pulled from the AST, and then just the names of the arguments are copied for the purposes of detecting signature changes.Notes: