瀏覽代碼

fix: raise the exception after rollback the import

trgiangdo 1 年之前
父節點
當前提交
665e7d5a16

+ 1 - 1
taipy/core/scenario/_scenario_manager.py

@@ -535,7 +535,7 @@ class _ScenarioManager(_Manager[Scenario], _VersionMixin):
                     for entity_id in entity_ids:
                         if manager._exists(entity_id):
                             manager._delete(entity_id)
-                return None
+                raise err
 
         cls._logger.info(f"Scenario {imported_scenario.id} has been successfully imported.")  # type: ignore[union-attr]
         return imported_scenario

+ 1 - 1
taipy/core/taipy.py

@@ -1054,7 +1054,7 @@ def import_scenario(input_path: Union[str, pathlib.Path], override: bool = False
         override (bool): If True, override the entities if existed. Default value is False.
 
     Return:
-        The imported scenario if the import is successful.
+        The imported scenario.
 
     Raises:
         FileNotFoundError: If the import path does not exist.

+ 4 - 3
tests/core/test_taipy/test_import.py

@@ -23,6 +23,7 @@ from taipy.core.cycle._cycle_manager import _CycleManager
 from taipy.core.data._data_manager import _DataManager
 from taipy.core.exceptions.exceptions import (
     ConflictedConfigurationError,
+    EntitiesToBeImportAlredyExist,
     ImportArchiveDoesntContainAnyScenario,
     ImportScenarioDoesntHaveAVersion,
 )
@@ -135,9 +136,9 @@ def test_import_scenario_when_entities_are_already_existed_should_rollback(caplo
     submission_id = _SubmissionManager._get_all()[0].id
     assert len(_ScenarioManager._get_all()) == 0
 
-    # Import the scenario when the old entities still exist
-    imported_entity = tp.import_scenario("tmp.zip")
-    assert imported_entity is None
+    # Import the scenario when the old entities still exist should raise an error
+    with pytest.raises(EntitiesToBeImportAlredyExist):
+        tp.import_scenario("tmp.zip")
     assert all(log.levelname in ["ERROR", "INFO"] for log in caplog.records)
     assert "An error occurred during the import" in caplog.text
     assert f"{submission_id} already exists. Please use the 'override' parameter to override it" in caplog.text

+ 4 - 4
tests/core/test_taipy/test_import_with_sql_repo.py

@@ -19,7 +19,7 @@ from taipy import Config, Frequency, Scope
 from taipy.core._version._version_manager import _VersionManager
 from taipy.core.cycle._cycle_manager import _CycleManager
 from taipy.core.data._data_manager import _DataManager
-from taipy.core.exceptions.exceptions import ConflictedConfigurationError
+from taipy.core.exceptions.exceptions import ConflictedConfigurationError, EntitiesToBeImportAlredyExist
 from taipy.core.job._job_manager import _JobManager
 from taipy.core.scenario._scenario_manager import _ScenarioManager
 from taipy.core.submission._submission_manager import _SubmissionManager
@@ -129,9 +129,9 @@ def test_import_scenario_when_entities_are_already_existed_should_rollback(init_
     submission_id = _SubmissionManager._get_all()[0].id
     assert len(_ScenarioManager._get_all()) == 0
 
-    # Import the scenario when the old entities still exist
-    imported_entity = tp.import_scenario("tmp.zip")
-    assert imported_entity is None
+    # Import the scenario when the old entities still exist should raise an error
+    with pytest.raises(EntitiesToBeImportAlredyExist):
+        tp.import_scenario("tmp.zip")
     assert all(log.levelname in ["ERROR", "INFO"] for log in caplog.records)
     assert "An error occurred during the import" in caplog.text
     assert f"{submission_id} already exists. Please use the 'override' parameter to override it" in caplog.text