diff --git a/.devcontainer/postStartCommand.sh b/.devcontainer/postStartCommand.sh index 6125e38..0bc469e 100755 --- a/.devcontainer/postStartCommand.sh +++ b/.devcontainer/postStartCommand.sh @@ -5,4 +5,4 @@ nohup bash -c '.devcontainer/postStartBackground.sh &' > .dev_container_logs/pos docker compose -f tests/workarounds/pytest_django/docker-compose.yml up -d postgres -poetry run dmypy start +poetry run dmypy start || true diff --git a/.ptyme_track/JamesHutchison b/.ptyme_track/JamesHutchison index 43563b9..a484efc 100644 --- a/.ptyme_track/JamesHutchison +++ b/.ptyme_track/JamesHutchison @@ -274,3 +274,11 @@ {"time": "2024-01-03 23:36:35", "signed_time": {"server_id": "1eb67bdb-d0bd-48b0-a532-51701e956a47", "time": "2024-01-03 23:36:35", "sig": "ad9472a8dc4c108574abe39513f918aa17fedbfa7ebfb6cd749021b65c9b3cf5"}, "hash": "9f5dcc23a22776cded24ff35194a7717", "stop": false, "git-branch": "restore-logging-colors"} {"time": "2024-01-03 23:38:33", "signed_time": {"server_id": "1eb67bdb-d0bd-48b0-a532-51701e956a47", "time": "2024-01-03 23:38:33", "sig": "42679bf9908cf890e66de814740af7773126261d1fdc5a72aa7abdef30a05ab7"}, "hash": "123ccc9fb6ab256f282e488e69a51d80", "stop": false, "git-branch": "restore-logging-colors"} {"time": "2024-01-03 23:40:33", "signed_time": {"server_id": "1eb67bdb-d0bd-48b0-a532-51701e956a47", "time": "2024-01-03 23:40:33", "sig": "7dca698152abf42cd036f3ee6ec673f749adafccf5eb2234140212494757c3d9"}, "hash": "123ccc9fb6ab256f282e488e69a51d80", "stop": true, "git-branch": "restore-logging-colors"} +{"time": "2024-01-03 23:46:34", "signed_time": {"server_id": "1eb67bdb-d0bd-48b0-a532-51701e956a47", "time": "2024-01-03 23:46:34", "sig": "6f88c8f6d078e9376f00a78e9125de8e1b4ac58b3e6f07f5b5d1357870767066"}, "hash": "daf6e7098a87e08c887af903a37f47dc", "stop": false, "git-branch": "vs-code-workaround"} +{"time": "2024-01-03 23:48:34", "signed_time": {"server_id": "1eb67bdb-d0bd-48b0-a532-51701e956a47", "time": "2024-01-03 23:48:34", "sig": "88b9d34a9333dd7db04df66cb43801dc75e7fd05c4e7d7476c764412fec13554"}, "hash": "daf6e7098a87e08c887af903a37f47dc", "stop": true, "git-branch": "vs-code-workaround"} +{"time": "2024-01-05 06:48:16", "signed_time": {"server_id": "4121c46a-3c83-4268-add3-cdd854937fe3", "time": "2024-01-05 06:48:16", "sig": "1906c2bbb0655e40d24db2350f4a5d72a416fd7a0bfd72bbe8eea1b63cb56d7a"}, "hash": "daf6e7098a87e08c887af903a37f47dc", "stop": false, "git-branch": "vs-code-workaround"} +{"time": "2024-01-05 06:50:16", "signed_time": {"server_id": "4121c46a-3c83-4268-add3-cdd854937fe3", "time": "2024-01-05 06:50:16", "sig": "e8169a941bcb3325621b9de13c935037edc164cef6ded38233e2bd977aba7838"}, "hash": "daf6e7098a87e08c887af903a37f47dc", "stop": true, "git-branch": "vs-code-workaround"} +{"time": "2024-01-05 06:52:15", "signed_time": {"server_id": "4121c46a-3c83-4268-add3-cdd854937fe3", "time": "2024-01-05 06:52:15", "sig": "aa9512c91435ce7bbc6c44c674795f2c84205d513656ca01ba2ab2a76b8bb422"}, "hash": "29f6df229c939062c0eab91fe035b3d7", "stop": false, "git-branch": "vs-code-workaround"} +{"time": "2024-01-05 06:54:15", "signed_time": {"server_id": "4121c46a-3c83-4268-add3-cdd854937fe3", "time": "2024-01-05 06:54:15", "sig": "6a7f9f346ab77ddcd09ec4041c8de9f1d80db4b641accbb74b2e90e5f622ed30"}, "hash": "29f6df229c939062c0eab91fe035b3d7", "stop": true, "git-branch": "vs-code-workaround"} +{"time": "2024-01-05 07:00:16", "signed_time": {"server_id": "4121c46a-3c83-4268-add3-cdd854937fe3", "time": "2024-01-05 07:00:16", "sig": "b7fa60e7fc239eb5babbaa3205f7355c6537d27a22abd7d6466007265cadce6c"}, "hash": "e0950f040c2c9be37b4b16cbe7c45daf", "stop": false, "git-branch": "vs-code-workaround"} +{"time": "2024-01-05 07:00:55", "signed_time": {"server_id": "dfe2bbb2-ff98-43e0-8691-a8c45d2bfec2", "time": "2024-01-05 07:00:55", "sig": "1af42c1937070f7b691a38a32e39902a320ea84dfecbe7b4d303d1ae0ff4c5c1"}, "hash": "e0950f040c2c9be37b4b16cbe7c45daf", "stop": false, "git-branch": "vs-code-workaround"} diff --git a/pytest_hot_reloading/workarounds.py b/pytest_hot_reloading/workarounds.py index b10eeaf..2dd903e 100644 --- a/pytest_hot_reloading/workarounds.py +++ b/pytest_hot_reloading/workarounds.py @@ -44,6 +44,28 @@ def pytest_django_tox_workaround() -> None: fixtures._set_suffix_to_test_databases = lambda suffix: None +@register_workaround("vscode_pytest") +def vscode_pytest_workaround() -> None: + """ + VS Code seems to keep track of collected tests and does a check to ensure + they were not already collected before returning them. + + Also, it uses a list when all it does is an existence check, so this swaps + the list for a set with `append`. + """ + + import vscode_pytest # type: ignore + + class SetWithAppendRemove(set): + def append(self, val) -> None: + self.add(val) + + def remove(self, val) -> None: + self.remove(val) + + vscode_pytest.collected_tests_so_far = SetWithAppendRemove() + + def run_workarounds_pre() -> list[Generator]: in_progress_workarounds = [] for module_name, workaround in workarounds: