77from django .urls import reverse
88from rest_framework .test import APIClient
99from rest_framework import status
10+ from eox_core .api .data .aggregated_collector .utils import execute_query
1011from eox_core .api .data .aggregated_collector .tasks import generate_report
1112from eox_core .api .data .aggregated_collector .v1 .views import AggregatedCollectorView
1213
13-
1414class AggregatedCollectorViewTests (TestCase ):
1515 def setUp (self ):
1616 self .client = APIClient ()
17+ self .url = reverse ("eox-data-api-collector-v1:aggregated_collector" )
1718 settings .AGGREGATED_DATA_COLLECTOR_API_ENABLED = True
1819 settings .EOX_CORE_AGGREGATED_COLLECTOR_TARGET_URL = "http://mock-api.com"
1920 settings .EOX_CORE_AGGREGATED_COLLECTOR_TARGET_TOKEN_URL = "http://mock-token.com"
@@ -27,6 +28,17 @@ def test_generate_report(self, mock_post, mock_execute):
2728 """
2829 mock_execute .return_value = [{"id" : 1 , "data" : "sample" }]
2930
30- generate_report ("http://mock-api.com" , "http://mock-token.com" , "localhost" )
31+ generate_report (self , "http://mock-api.com" , "http://mock-token.com" , "localhost" )
3132
3233 mock_post .assert_called_once ()
34+
35+ @patch ("eox_core.api.data.aggregated_collector.v1.views.generate_report.delay" )
36+ def test_aggregated_collector_view (self , mock_task ):
37+ """
38+ Test AggregatedCollectorView to ensure it correctly triggers the report generation task.
39+ """
40+ response = self .client .post (self .url , HTTP_AUTHORIZATION = f"Bearer { settings .EOX_CORE_AGGREGATED_COLLECTOR_AUTH_TOKEN } " )
41+
42+ self .assertEqual (response .status_code , status .HTTP_202_ACCEPTED )
43+
44+ mock_task .assert_called_once ()
0 commit comments