12
12
from core .models import Pattern
13
13
from core .models import PatternInstance
14
14
from core .models import Task
15
- from core .tasks import run_pattern_task
15
+ from core .task_runner import run_pattern_task
16
16
17
17
18
18
class SharedDataMixin :
@@ -78,9 +78,11 @@ def tearDown(self):
78
78
79
79
80
80
class PatternTaskTest (SharedDataMixin , TestCase ):
81
- @patch ("core.models.Task.update_task_status" , autospec = True )
82
- @patch ("core.tasks.open" , new_callable = mock_open , read_data = '{"name": "test"}' )
83
- @patch ("core.tasks.download_collection" )
81
+ @patch ("core.models.Task.set_status" , autospec = True )
82
+ @patch (
83
+ "core.task_runner.open" , new_callable = mock_open , read_data = '{"name": "test"}'
84
+ )
85
+ @patch ("core.task_runner.download_collection" )
84
86
def test_run_pattern_task_success (
85
87
self , mock_download , mock_open_fn , mock_update_status
86
88
):
@@ -118,8 +120,8 @@ def test_run_pattern_task_success(
118
120
task , "Completed" , {"info" : "Pattern processed successfully" }
119
121
)
120
122
121
- @patch ("core.models.Task.update_task_status " , autospec = True )
122
- @patch ("core.tasks .download_collection" , side_effect = FileNotFoundError )
123
+ @patch ("core.models.Task.set_status " , autospec = True )
124
+ @patch ("core.task_runner .download_collection" , side_effect = FileNotFoundError )
123
125
def test_run_pattern_task_file_not_found (self , mock_download , mock_update_status ):
124
126
pattern = Pattern .objects .create (
125
127
collection_name = "demo.collection" ,
@@ -134,15 +136,17 @@ def test_run_pattern_task_file_not_found(self, mock_download, mock_update_status
134
136
task , "Failed" , {"error" : "Pattern definition not found." }
135
137
)
136
138
137
- @patch ("core.tasks.download_collection" , side_effect = Exception ("Download failed" ))
139
+ @patch (
140
+ "core.task_runner.download_collection" , side_effect = Exception ("Download failed" )
141
+ )
138
142
def test_run_pattern_task_handles_download_failure (self , mock_download ):
139
143
run_pattern_task (self .pattern .id , self .task .id )
140
144
self .task .refresh_from_db ()
141
145
self .assertEqual (self .task .status , "Failed" )
142
146
self .assertIn ("Download failed" , self .task .details .get ("error" , "" ))
143
147
144
- @patch ("core.models.Task.update_task_status " , autospec = True )
145
- @patch ("core.tasks .download_collection" )
148
+ @patch ("core.models.Task.set_status " , autospec = True )
149
+ @patch ("core.task_runner .download_collection" )
146
150
def test_full_status_update_flow (self , mock_download , mock_update_status ):
147
151
temp_dir_path = self .create_temp_collection_dir ()
148
152
mock_download .return_value .__enter__ .return_value = temp_dir_path
0 commit comments