diff --git a/997.patch b/997.patch deleted file mode 100644 index 692633a..0000000 --- a/997.patch +++ /dev/null @@ -1,90 +0,0 @@ -From fd201d1c12f9148b267a3a46353ef8110b8385a4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= -Date: Mon, 26 May 2025 12:22:59 +0200 -Subject: [PATCH] Access ast.Constant.value, not .s -- the latter is gone from - Python 3.14+ - -Followup for https://github.com/Ultimaker/Uranium/issues/498 - -Test failures this fixes: - - _____________________________ test_init_good["x"] ______________________________ - - setting_function_good = - - def test_init_good(setting_function_good): - assert setting_function_good is not None - > assert setting_function_good.isValid() - E assert False - E + where False = isValid() - E + where isValid = .isValid - - tests/Settings/TestSettingFunction.py:64: AssertionError - ---------------------------- Captured stdout setup ----------------------------- - [MainThread] UM.Settings.SettingFunction._safeCompile [80]: Exception in function ('Constant' object has no attribute 's') for setting: "x" - _______________________________ test_call[data1] _______________________________ - - data = {'code': '"x"', 'result': 'x'} - - @pytest.mark.parametrize("data", test_call_data) - def test_call(data): - value_provider = MockValueProvider() - function = SettingFunction(data["code"]) - > assert function(value_provider) == data["result"] - E assert None == 'x' - E + where None = () - - tests/Settings/TestSettingFunction.py:115: AssertionError - ----------------------------- Captured stdout call ----------------------------- - [MainThread] UM.Settings.SettingFunction._safeCompile [80]: Exception in function ('Constant' object has no attribute 's') for setting: "x" - _________________________ test_getUsedSettings[data1] __________________________ - - data = {'code': '"x"', 'variables': ['x']} - - @pytest.mark.parametrize("data", test_getUsedSettings_data) - def test_getUsedSettings(data): - function = SettingFunction(data["code"]) - answer = function.getUsedSettingKeys() - > assert len(answer) == len(data["variables"]) - E AssertionError: assert 0 == 1 - E + where 0 = len(frozenset()) - E + and 1 = len(['x']) - - tests/Settings/TestSettingFunction.py:159: AssertionError - ----------------------------- Captured stdout call ----------------------------- - [MainThread] UM.Settings.SettingFunction._safeCompile [80]: Exception in function ('Constant' object has no attribute 's') for setting: "x" - _________________________ test_getUsedSettings[data7] __________________________ - - data = {'code': "sqrt('x')", 'variables': ['x']} - - @pytest.mark.parametrize("data", test_getUsedSettings_data) - def test_getUsedSettings(data): - function = SettingFunction(data["code"]) - answer = function.getUsedSettingKeys() - > assert len(answer) == len(data["variables"]) - E AssertionError: assert 0 == 1 - E + where 0 = len(frozenset()) - E + and 1 = len(['x']) - - tests/Settings/TestSettingFunction.py:159: AssertionError - ----------------------------- Captured stdout call ----------------------------- - [MainThread] UM.Settings.SettingFunction._safeCompile [80]: Exception in function ('Constant' object has no attribute 's') for setting: sqrt('x') ---- - UM/Settings/SettingFunction.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/UM/Settings/SettingFunction.py b/UM/Settings/SettingFunction.py -index 194087a00..5f3240cb6 100644 ---- a/UM/Settings/SettingFunction.py -+++ b/UM/Settings/SettingFunction.py -@@ -274,8 +274,8 @@ def visit_Constant(self, node) -> None: - - if node.value in self._blacklist: - raise IllegalMethodError(node.value) -- if node.s.startswith("_"): -- raise IllegalMethodError(node.s) -+ if node.value.startswith("_"): -+ raise IllegalMethodError(node.value) - if node.value not in self._knownNames and node.value not in dir(builtins): # type: ignore #AST uses getattr stuff, so ignore type of node.value. - self.keys.add(node.value) # type: ignore - diff --git a/Uranium-5.6.0-pytest8.patch b/Uranium-5.6.0-pytest8.patch deleted file mode 100644 index b349282..0000000 --- a/Uranium-5.6.0-pytest8.patch +++ /dev/null @@ -1,53 +0,0 @@ -From dd2c31bc0f38d11c8351d89fae3d92cd12da885e Mon Sep 17 00:00:00 2001 -From: Remco Burema -Date: Wed, 21 Feb 2024 11:39:49 +0100 -Subject: [PATCH 1/3] Protobuf version mismatch caused tests,builds to fail. - ---- - 1 file changed, 1 insertion(+) - -diff --git a/tests/conftest.py b/tests/conftest.py -index 4fcd4cefd..4f500fabc 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -59,3 +59,17 @@ def upgrade_manager(application): - upgrade_manager = VersionUpgradeManager(application) - return upgrade_manager - -+def pytest_collection_modifyitems(items): -+ """ Modifies test items in place to ensure test classes run in a given order. -+ See: https://stackoverflow.com/questions/70738211/run-pytest-classes-in-custom-order/70758938#70758938 -+ """ -+ CLASS_ORDER = ["TestActiveToolProxy"] # All classes that need to be run in-order, in that order -- all others will run _before_. -+ class_mapping = {item: item.cls.__name__ for item in items} -+ -+ sorted_items = items.copy() -+ # Iteratively move tests of each class to the end of the test queue -+ for class_ in CLASS_ORDER: -+ sorted_items = [it for it in sorted_items if class_mapping[it] != class_] + [ -+ it for it in sorted_items if class_mapping[it] == class_ -+ ] -+ items[:] = sorted_items - -From cd4eb2cf8c450c23a3f2d42619ee36ec93d49a6d Mon Sep 17 00:00:00 2001 -From: Remco Burema -Date: Wed, 21 Feb 2024 16:22:24 +0100 -Subject: [PATCH 3/3] Not all our tests are classes. - ---- - tests/conftest.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/conftest.py b/tests/conftest.py -index 4f500fabc..d26f2545a 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -64,7 +64,7 @@ def pytest_collection_modifyitems(items): - See: https://stackoverflow.com/questions/70738211/run-pytest-classes-in-custom-order/70758938#70758938 - """ - CLASS_ORDER = ["TestActiveToolProxy"] # All classes that need to be run in-order, in that order -- all others will run _before_. -- class_mapping = {item: item.cls.__name__ for item in items} -+ class_mapping = {item: (item.cls.__name__ if item.cls else "") for item in items} - - sorted_items = items.copy() - # Iteratively move tests of each class to the end of the test queue diff --git a/python-uranium.spec b/python-uranium.spec index 693470e..6c990b6 100644 --- a/python-uranium.spec +++ b/python-uranium.spec @@ -8,11 +8,6 @@ Source: %{url}/archive/%{version}.tar.gz#/Uranium-%{version}.tar.gz Patch: Uranium-5.3.0-qt-try-ints-then-bytes-for-gl-mask-functions.patch # Fix asserts for called once in Python 3.12: Patch: https://github.com/Ultimaker/Uranium/pull/885.patch#/Uranium-5.3.0-python3.12.patch -# Force test order to fix FTBFS with pytest 8 -# From https://github.com/Ultimaker/Uranium/pull/941 -Patch: Uranium-5.6.0-pytest8.patch -# Fix for Python 3.14 -Patch: https://github.com/Ultimaker/Uranium/pull/997.patch # Cmake bits taken from 4.13.1, before upstream went nuts with conan Source2: mod_bundled_packages_json.py