Bläddra i källkod

✨ Add API to manually set job's stacktrace

Grégoire Marabout-Demazure 1 år sedan
förälder
incheckning
64b47aa8f8
2 ändrade filer med 18 tillägg och 0 borttagningar
  1. 5 0
      taipy/core/job/job.py
  2. 13 0
      tests/core/job/test_job.py

+ 5 - 0
taipy/core/job/job.py

@@ -136,6 +136,11 @@ class Job(_Entity, _Labeled):
     def stacktrace(self) -> List[str]:
         return self._stacktrace
 
+    @stacktrace.setter  # type: ignore
+    @_self_setter(_MANAGER_NAME)
+    def stacktrace(self, val):
+        self._stacktrace = val
+
     @property
     def version(self):
         return self._version

+ 13 - 0
tests/core/job/test_job.py

@@ -147,6 +147,19 @@ def test_status_job(task):
     assert job.is_skipped()
 
 
+def test_stacktrace_job(task):
+    submission = _SubmissionManagerFactory._build_manager()._create(task.id, task._ID_PREFIX, task.config_id)
+    job = Job("job_id", task, submission.id, "SCENARIO_scenario_config")
+
+    fake_stacktrace = """Traceback (most recent call last):
+File "<stdin>", line 1, in <module>
+ZeroDivisionError: division by zero""".splitlines()
+
+    job.stacktrace = fake_stacktrace
+    assert len(job.stacktrace) == 3
+    assert all(st == fake_stacktrace[idx] for idx, st in enumerate(job.stacktrace))
+
+
 def test_notification_job(task):
     subscribe = MagicMock()
     submission = _SubmissionManagerFactory._build_manager()._create(task.id, task._ID_PREFIX, task.config_id)