From 53e86bc830209af55431be329d29a14cf0cf3eaf Mon Sep 17 00:00:00 2001 From: Wu Tingfeng Date: Fri, 8 Nov 2024 21:16:09 +0800 Subject: [PATCH] Reduce test strictness. --- poetry.lock | 46 +++++++++++++++++++++--------------------- pyproject.toml | 2 +- railrailrail/config.py | 4 ++-- tests/test_config.py | 26 ++++-------------------- 4 files changed, 30 insertions(+), 48 deletions(-) diff --git a/poetry.lock b/poetry.lock index 05bbd74..884ed7e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -795,13 +795,13 @@ files = [ [[package]] name = "packaging" -version = "24.1" +version = "24.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] [[package]] @@ -1546,29 +1546,29 @@ files = [ [[package]] name = "ruff" -version = "0.7.2" +version = "0.7.3" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.7.2-py3-none-linux_armv6l.whl", hash = "sha256:b73f873b5f52092e63ed540adefc3c36f1f803790ecf2590e1df8bf0a9f72cb8"}, - {file = "ruff-0.7.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:5b813ef26db1015953daf476202585512afd6a6862a02cde63f3bafb53d0b2d4"}, - {file = "ruff-0.7.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:853277dbd9675810c6826dad7a428d52a11760744508340e66bf46f8be9701d9"}, - {file = "ruff-0.7.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21aae53ab1490a52bf4e3bf520c10ce120987b047c494cacf4edad0ba0888da2"}, - {file = "ruff-0.7.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ccc7e0fc6e0cb3168443eeadb6445285abaae75142ee22b2b72c27d790ab60ba"}, - {file = "ruff-0.7.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd77877a4e43b3a98e5ef4715ba3862105e299af0c48942cc6d51ba3d97dc859"}, - {file = "ruff-0.7.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e00163fb897d35523c70d71a46fbaa43bf7bf9af0f4534c53ea5b96b2e03397b"}, - {file = "ruff-0.7.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3c54b538633482dc342e9b634d91168fe8cc56b30a4b4f99287f4e339103e88"}, - {file = "ruff-0.7.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7b792468e9804a204be221b14257566669d1db5c00d6bb335996e5cd7004ba80"}, - {file = "ruff-0.7.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dba53ed84ac19ae4bfb4ea4bf0172550a2285fa27fbb13e3746f04c80f7fa088"}, - {file = "ruff-0.7.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b19fafe261bf741bca2764c14cbb4ee1819b67adb63ebc2db6401dcd652e3748"}, - {file = "ruff-0.7.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:28bd8220f4d8f79d590db9e2f6a0674f75ddbc3847277dd44ac1f8d30684b828"}, - {file = "ruff-0.7.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9fd67094e77efbea932e62b5d2483006154794040abb3a5072e659096415ae1e"}, - {file = "ruff-0.7.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:576305393998b7bd6c46018f8104ea3a9cb3fa7908c21d8580e3274a3b04b691"}, - {file = "ruff-0.7.2-py3-none-win32.whl", hash = "sha256:fa993cfc9f0ff11187e82de874dfc3611df80852540331bc85c75809c93253a8"}, - {file = "ruff-0.7.2-py3-none-win_amd64.whl", hash = "sha256:dd8800cbe0254e06b8fec585e97554047fb82c894973f7ff18558eee33d1cb88"}, - {file = "ruff-0.7.2-py3-none-win_arm64.whl", hash = "sha256:bb8368cd45bba3f57bb29cbb8d64b4a33f8415d0149d2655c5c8539452ce7760"}, - {file = "ruff-0.7.2.tar.gz", hash = "sha256:2b14e77293380e475b4e3a7a368e14549288ed2931fce259a6f99978669e844f"}, + {file = "ruff-0.7.3-py3-none-linux_armv6l.whl", hash = "sha256:34f2339dc22687ec7e7002792d1f50712bf84a13d5152e75712ac08be565d344"}, + {file = "ruff-0.7.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:fb397332a1879b9764a3455a0bb1087bda876c2db8aca3a3cbb67b3dbce8cda0"}, + {file = "ruff-0.7.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:37d0b619546103274e7f62643d14e1adcbccb242efda4e4bdb9544d7764782e9"}, + {file = "ruff-0.7.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d59f0c3ee4d1a6787614e7135b72e21024875266101142a09a61439cb6e38a5"}, + {file = "ruff-0.7.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:44eb93c2499a169d49fafd07bc62ac89b1bc800b197e50ff4633aed212569299"}, + {file = "ruff-0.7.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d0242ce53f3a576c35ee32d907475a8d569944c0407f91d207c8af5be5dae4e"}, + {file = "ruff-0.7.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:6b6224af8b5e09772c2ecb8dc9f3f344c1aa48201c7f07e7315367f6dd90ac29"}, + {file = "ruff-0.7.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c50f95a82b94421c964fae4c27c0242890a20fe67d203d127e84fbb8013855f5"}, + {file = "ruff-0.7.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7f3eff9961b5d2644bcf1616c606e93baa2d6b349e8aa8b035f654df252c8c67"}, + {file = "ruff-0.7.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8963cab06d130c4df2fd52c84e9f10d297826d2e8169ae0c798b6221be1d1d2"}, + {file = "ruff-0.7.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:61b46049d6edc0e4317fb14b33bd693245281a3007288b68a3f5b74a22a0746d"}, + {file = "ruff-0.7.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:10ebce7696afe4644e8c1a23b3cf8c0f2193a310c18387c06e583ae9ef284de2"}, + {file = "ruff-0.7.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:3f36d56326b3aef8eeee150b700e519880d1aab92f471eefdef656fd57492aa2"}, + {file = "ruff-0.7.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5d024301109a0007b78d57ab0ba190087b43dce852e552734ebf0b0b85e4fb16"}, + {file = "ruff-0.7.3-py3-none-win32.whl", hash = "sha256:4ba81a5f0c5478aa61674c5a2194de8b02652f17addf8dfc40c8937e6e7d79fc"}, + {file = "ruff-0.7.3-py3-none-win_amd64.whl", hash = "sha256:588a9ff2fecf01025ed065fe28809cd5a53b43505f48b69a1ac7707b1b7e4088"}, + {file = "ruff-0.7.3-py3-none-win_arm64.whl", hash = "sha256:1713e2c5545863cdbfe2cbce21f69ffaf37b813bfd1fb3b90dc9a6f1963f5a8c"}, + {file = "ruff-0.7.3.tar.gz", hash = "sha256:e1d1ba2e40b6e71a61b063354d04be669ab0d39c352461f3d789cac68b54a313"}, ] [[package]] @@ -1879,4 +1879,4 @@ test = ["pytest", "pytest-cov"] [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "2373acb022dfed20c728248093326bbc11d1a508e214fd3670e2ac625a20cb3a" +content-hash = "bc0e210aa86901a08207b89eb784a015347b28ee741affe9ea8fd2b31b580e6f" diff --git a/pyproject.toml b/pyproject.toml index 234599e..af42c22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ tomlkit = "^0.13.2" xlrd = "^2.0.1" [tool.poetry.group.dev.dependencies] -ruff = "^0.7.2" +ruff = "^0.7.3" pytest = "^8.3.3" pytest-cov = "^6.0.0" pytest-mock = "^3.14.0" diff --git a/railrailrail/config.py b/railrailrail/config.py index 61d25dc..428035a 100644 --- a/railrailrail/config.py +++ b/railrailrail/config.py @@ -23,6 +23,7 @@ import tomlkit +from railrailrail.coordinates import Coordinates from railrailrail.network.conditional_transfers import ConditionalTransfers from railrailrail.network.dwell_time import DwellTime from railrailrail.network.stage import Stage @@ -31,7 +32,6 @@ from railrailrail.network.train_segments import TrainSegments from railrailrail.network.transfers import Transfers from railrailrail.network.walks import Walks -from railrailrail.coordinates import Coordinates class Config: @@ -509,7 +509,7 @@ def update_network_config_file(self, path: pathlib.Path) -> None: updated: list[str] = tomlkit.dumps(network).splitlines() with open(path, "w") as f: if original is None or all(not line for line in original): - tomlkit.dump(network, f) + tomlkit.dump(network, f) # File at path is empty or non-existent. else: f.write(Config.compare_toml(original, updated)) diff --git a/tests/test_config.py b/tests/test_config.py index 3785e98..ce18206 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -232,33 +232,15 @@ def test_compare_toml(self): def test_update_network_config_file(self): config_file_path = pathlib.Path("network_test.toml") - open_calls = [ - self.mocker.call(config_file_path, "r"), - self.mocker.call().__enter__(), - self.mocker.call().read(), - self.mocker.call().__exit__(None, None, None), - self.mocker.call(config_file_path, "w"), - self.mocker.call().__enter__(), - self.mocker.call().write(self.mocker.ANY), - self.mocker.call().__exit__(None, None, None), - ] mocked_open = self.mocker.patch( "railrailrail.config.open", self.mocker.mock_open() - ) + ) # Overwrite existing file. self.config_tel_3.update_network_config_file(config_file_path) - mock_calls_without_close = [ - c for c in mocked_open.mock_calls if c != self.mocker.call().close() - ] # self.mocker.call().close() may not always be called. - if mock_calls_without_close != open_calls: - pytest.fail(f"Expected: {open_calls} \nGot: {mock_calls_without_close}") + assert mocked_open.call_count == 2 - open_calls = [ - self.mocker.call(config_file_path, "r"), - self.mocker.call(config_file_path, "w"), - ] mocked_open = self.mocker.patch( "railrailrail.config.open", side_effect=[OSError, self.mocker.mock_open().return_value], - ) + ) # Create new file if it is empty or does not exist. self.config_tel_3.update_network_config_file(config_file_path) - mocked_open.assert_has_calls(open_calls, any_order=False) + assert mocked_open.call_count == 2