Browse Source

Fix circular import problem caused by moving SettingVersion into CuraApplication

CURA-3756
Lipu Fei 7 years ago
parent
commit
121ebd79cf

+ 2 - 2
cura/Settings/ContainerManager.py

@@ -28,7 +28,6 @@ from UM.Settings.ContainerRegistry import ContainerRegistry
 
 from UM.i18n import i18nCatalog
 
-import cura.CuraApplication
 from cura.Settings.ExtruderManager import ExtruderManager
 
 catalog = i18nCatalog("cura")
@@ -919,7 +918,8 @@ class ContainerManager(QObject):
             quality_changes.setDefinition(self._container_registry.findContainers(id = "fdmprinter")[0])
         else:
             quality_changes.setDefinition(QualityManager.getInstance().getParentMachineDefinition(machine_definition))
-        quality_changes.addMetaDataEntry("setting_version", cura.CuraApplication.CuraApplication.SettingVersion)
+        from cura.CuraApplication import CuraApplication
+        quality_changes.addMetaDataEntry("setting_version", CuraApplication.SettingVersion)
         return quality_changes
 
 

+ 4 - 3
cura/Settings/CuraStackBuilder.py

@@ -11,7 +11,6 @@ from .GlobalStack import GlobalStack
 from .ExtruderStack import ExtruderStack
 from typing import Optional
 
-import cura.CuraApplication
 
 ##  Contains helper functions to create new machines.
 class CuraStackBuilder:
@@ -76,7 +75,8 @@ class CuraStackBuilder:
         user_container = InstanceContainer(new_stack_id + "_user")
         user_container.addMetaDataEntry("type", "user")
         user_container.addMetaDataEntry("extruder", new_stack_id)
-        user_container.addMetaDataEntry("setting_version", cura.CuraApplication.CuraApplication.SettingVersion)
+        from cura.CuraApplication import CuraApplication
+        user_container.addMetaDataEntry("setting_version", CuraApplication.SettingVersion)
         user_container.setDefinition(machine_definition)
 
         stack.setUserChanges(user_container)
@@ -125,7 +125,8 @@ class CuraStackBuilder:
         user_container = InstanceContainer(new_stack_id + "_user")
         user_container.addMetaDataEntry("type", "user")
         user_container.addMetaDataEntry("machine", new_stack_id)
-        user_container.addMetaDataEntry("setting_version", cura.CuraApplication.CuraApplication.SettingVersion)
+        from cura.CuraApplication import CuraApplication
+        user_container.addMetaDataEntry("setting_version", CuraApplication.SettingVersion)
         user_container.setDefinition(definition)
 
         stack.setUserChanges(user_container)

+ 2 - 3
cura/Settings/ExtruderManager.py

@@ -18,8 +18,6 @@ from UM.Settings.ContainerStack import ContainerStack
 from UM.Settings.DefinitionContainer import DefinitionContainer
 from typing import Optional, List, TYPE_CHECKING, Union
 
-import cura.CuraApplication
-
 if TYPE_CHECKING:
     from cura.Settings.ExtruderStack import ExtruderStack
     from cura.Settings.GlobalStack import GlobalStack
@@ -365,7 +363,8 @@ class ExtruderManager(QObject):
             user_profile = InstanceContainer(extruder_stack_id + "_current_settings")  # Add an empty user profile.
             user_profile.addMetaDataEntry("type", "user")
             user_profile.addMetaDataEntry("extruder", extruder_stack_id)
-            user_profile.addMetaDataEntry("setting_version", cura.CuraApplication.CuraApplication.SettingVersion)
+            from cura.CuraApplication import CuraApplication
+            user_profile.addMetaDataEntry("setting_version", CuraApplication.SettingVersion)
             user_profile.setDefinition(machine_definition)
             container_registry.addContainer(user_profile)
         container_stack.addContainer(user_profile)

+ 7 - 4
tests/Settings/TestCuraContainerRegistry.py

@@ -68,11 +68,12 @@ def test_addContainerGlobalStack(container_registry, definition_container):
     assert type(mock_super_add_container.call_args_list[0][0][0]) == GlobalStack
 
 def test_addContainerGoodSettingVersion(container_registry, definition_container):
-    definition_container.getMetaData()["setting_version"] = 3
+    from cura.CuraApplication import CuraApplication
+    definition_container.getMetaData()["setting_version"] = CuraApplication.SettingVersion
     container_registry.addContainer(definition_container)
 
     instance = UM.Settings.InstanceContainer.InstanceContainer(container_id = "Test Instance")
-    instance.addMetaDataEntry("setting_version", 3)
+    instance.addMetaDataEntry("setting_version", CuraApplication.SettingVersion)
     instance.setDefinition(definition_container)
 
     mock_super_add_container = unittest.mock.MagicMock() #Take the role of the Uranium-ContainerRegistry where the resulting containers get registered.
@@ -82,7 +83,8 @@ def test_addContainerGoodSettingVersion(container_registry, definition_container
     mock_super_add_container.assert_called_once_with(instance) #The instance must have been registered now.
 
 def test_addContainerNoSettingVersion(container_registry, definition_container):
-    definition_container.getMetaData()["setting_version"] = 3
+    from cura.CuraApplication import CuraApplication
+    definition_container.getMetaData()["setting_version"] = CuraApplication.SettingVersion
     container_registry.addContainer(definition_container)
 
     instance = UM.Settings.InstanceContainer.InstanceContainer(container_id = "Test Instance")
@@ -96,7 +98,8 @@ def test_addContainerNoSettingVersion(container_registry, definition_container):
     mock_super_add_container.assert_not_called() #Should not get passed on to UM.Settings.ContainerRegistry.addContainer, because the setting_version is interpreted as 0!
 
 def test_addContainerBadSettingVersion(container_registry, definition_container):
-    definition_container.getMetaData()["setting_version"] = 3
+    from cura.CuraApplication import CuraApplication
+    definition_container.getMetaData()["setting_version"] = CuraApplication.SettingVersion
     container_registry.addContainer(definition_container)
 
     instance = UM.Settings.InstanceContainer.InstanceContainer(container_id = "Test Instance")