From ad542f3aa5c8bee9abc9c79b66f7cee793e71957 Mon Sep 17 00:00:00 2001 From: Bryce Gattis Date: Thu, 25 Apr 2024 07:43:06 -0500 Subject: [PATCH] Add new test for more complex environment marker case Signed-off-by: Bryce Gattis --- tests/test_utils.py | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/tests/test_utils.py b/tests/test_utils.py index 50094a5..c0ba9e7 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,3 +1,4 @@ +import os import sys import typing import unittest.mock @@ -259,7 +260,7 @@ def test_normalizeRequirement( metadata={"is_pure_python": True}, ), ], - ] + ], ) def test_getRezRequirements(pkg_requires: typing.List[str], python_version: rez.version.Version, @@ -282,3 +283,41 @@ def test_getRezRequirements(pkg_requires: typing.List[str], # metadata={"is_pure_python": True}, # ) assert result == expected + + +@pytest.mark.parametrize( + "pkg_requires,python_version,expected", + [ + [ + ['click; python_version > "3.6" or (python_version == "3.6" and os_name == "unix")'], + rez.version.Version("3.6.15"), + rez_pip.utils.RequirementsDict( + requires=[], + variant_requires=["click", "python>3.6"], + metadata={"is_pure_python": True}, + ), + ], + ], +) +def test_getRezRequirements_mocked_os(pkg_requires: typing.List[str], + python_version: rez.version.Version, + expected: rez_pip.utils.RequirementsDict): + dist = importlib_metadata.Distribution() + with unittest.mock.patch.object( + importlib_metadata.Distribution, + "requires", + new_callable=unittest.mock.PropertyMock + ) as mock_property: + with unittest.mock.patch("os.name", new="unix"): + mock_property.return_value = pkg_requires + result = rez_pip.utils.getRezRequirements(dist, + python_version, + True) + # Actual result right now is: + # + # rez_pip.utils.RequirementsDict( + # requires=["python"], + # variant_requires=["platform-windows", "click"], + # metadata={"is_pure_python": True}, + # ) + assert result == expected \ No newline at end of file