From fc532db742ce0c73b441ea39a5550259534ebf4e Mon Sep 17 00:00:00 2001 From: "Szeverenyi Zoltan (uif77145)" Date: Fri, 29 Dec 2023 10:41:57 +0100 Subject: [PATCH 1/4] Fix failing tests --- tests/test_multi.py | 2 +- tests/test_regression.py | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/test_multi.py b/tests/test_multi.py index cb56d3d..c4aad75 100644 --- a/tests/test_multi.py +++ b/tests/test_multi.py @@ -36,7 +36,7 @@ class N: class A: a: N - assert multi.string("a { b = 1\nc = 2 }").string("a { c = 3\nd = 4 }").on( + assert multi.string("a { b = 1,\nc = 2 }").string("a { c = 3,\nd = 4 }").on( A ) == A(a=N(b=1, c=3, d=4)) diff --git a/tests/test_regression.py b/tests/test_regression.py index df429f1..87f48bb 100644 --- a/tests/test_regression.py +++ b/tests/test_regression.py @@ -142,9 +142,9 @@ def test_url(self) -> None: class A: url: str - os.environ["p_url"] = "https://github.com/zifeo/dataconf" - assert dataconf.env("p", A) == A(url="https://github.com/zifeo/dataconf") - os.environ.pop("p_url") + os.environ["P_URL"] = "https://github.com/zifeo/dataconf" + assert dataconf.env("P", A) == A(url="https://github.com/zifeo/dataconf") + os.environ.pop("P_URL") def test_env_var_cast_35(self) -> None: @dataclass @@ -171,9 +171,12 @@ class Config: original = Config("test_dump") - with tempfile.NamedTemporaryFile() as f: - dataconf.dump(f.name, original, out="yaml") - validate = dataconf.file(f.name, Config) + temporary_file = tempfile.NamedTemporaryFile() + temporary_file_name = temporary_file.name + temporary_file.close() + + dataconf.dump(temporary_file_name, original, out="yaml") + validate = dataconf.file(temporary_file_name, Config) assert original == validate From abde0c8c49a4ee69b15e08ca2ad8ffc95612fb4d Mon Sep 17 00:00:00 2001 From: "Szeverenyi Zoltan (uif77145)" Date: Fri, 29 Dec 2023 23:52:38 +0100 Subject: [PATCH 2/4] Set delete flag to make test case pass on Windows --- tests/test_regression.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/test_regression.py b/tests/test_regression.py index 87f48bb..df0c8e6 100644 --- a/tests/test_regression.py +++ b/tests/test_regression.py @@ -171,12 +171,9 @@ class Config: original = Config("test_dump") - temporary_file = tempfile.NamedTemporaryFile() - temporary_file_name = temporary_file.name - temporary_file.close() - - dataconf.dump(temporary_file_name, original, out="yaml") - validate = dataconf.file(temporary_file_name, Config) + with tempfile.NamedTemporaryFile(delete=False) as tfile: + dataconf.dump(tfile.name, original, out="yaml") + validate = dataconf.file(tfile.name, Config) assert original == validate From 8c55e1e3a6110031b375f4019968f3d34f261bdf Mon Sep 17 00:00:00 2001 From: "Szeverenyi Zoltan (uif77145)" Date: Sat, 30 Dec 2023 19:59:05 +0100 Subject: [PATCH 3/4] Add fixture for tempfile --- tests/test_regression.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/test_regression.py b/tests/test_regression.py index df0c8e6..b4b79a3 100644 --- a/tests/test_regression.py +++ b/tests/test_regression.py @@ -164,16 +164,21 @@ class Example: hello=None, world="monde", float_num=1.3, int_num=2, bool_var=True ) - def test_dump_fail_54(self): + @pytest.fixture + def named_temporary_file(self): + tfile = tempfile.NamedTemporaryFile(delete=False) + yield tfile + tfile.close() + + def test_dump_fail_54(self, named_temporary_file): @dataclass class Config: experiment_name: str original = Config("test_dump") - with tempfile.NamedTemporaryFile(delete=False) as tfile: - dataconf.dump(tfile.name, original, out="yaml") - validate = dataconf.file(tfile.name, Config) + dataconf.dump(named_temporary_file.name, original, out="yaml") + validate = dataconf.file(named_temporary_file.name, Config) assert original == validate From d5adee214d755afa687a4a053692b7ad00532b6f Mon Sep 17 00:00:00 2001 From: "Szeverenyi Zoltan (uif77145)" Date: Mon, 1 Jan 2024 21:18:37 +0100 Subject: [PATCH 4/4] Downgrade pyhocon --- poetry.lock | 14 +++++++------- pyproject.toml | 2 +- tests/test_multi.py | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index 6dece94..b52a985 100644 --- a/poetry.lock +++ b/poetry.lock @@ -430,16 +430,16 @@ wcwidth = "*" [[package]] name = "pyhocon" -version = "0.3.60" +version = "0.3.59" description = "HOCON parser for Python" optional = false python-versions = "*" files = [ - {file = "pyhocon-0.3.60.tar.gz", hash = "sha256:ea18520ea126981e5320a72281f1a5fef2c27923f70cc54e1bd241c26525fd4b"}, + {file = "pyhocon-0.3.59.tar.gz", hash = "sha256:bb0eee59b57ecea5c30d14efc7ee7e55c935d58f03025ccdfc49237e920aa48c"}, ] [package.dependencies] -pyparsing = {version = ">=2,<4", markers = "python_version >= \"3.0\""} +pyparsing = ">=2.0,<3.0" [package.extras] duration = ["python-dateutil (>=2.8.0)"] @@ -457,13 +457,13 @@ files = [ [[package]] name = "pytest" -version = "7.4.3" +version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, - {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, ] [package.dependencies] @@ -733,4 +733,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "d365bee1b223c0161bef7f049439aa38b62de94dc502784fc521d4587a50df07" +content-hash = "a3cbd0b18a3a1e80e092970a17ab376f35f381a5912a6814d156580aed802d26" diff --git a/pyproject.toml b/pyproject.toml index e5d7a0c..1b8ecb5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,7 @@ dataconf = 'dataconf.cli:run' [tool.poetry.dependencies] python = "^3.8" -pyhocon = "0.3.60" +pyhocon = "0.3.59" python-dateutil = "^2.8.2" PyYAML = "^6.0.1" pyparsing = "2.4.7" diff --git a/tests/test_multi.py b/tests/test_multi.py index c4aad75..cb56d3d 100644 --- a/tests/test_multi.py +++ b/tests/test_multi.py @@ -36,7 +36,7 @@ class N: class A: a: N - assert multi.string("a { b = 1,\nc = 2 }").string("a { c = 3,\nd = 4 }").on( + assert multi.string("a { b = 1\nc = 2 }").string("a { c = 3\nd = 4 }").on( A ) == A(a=N(b=1, c=3, d=4))