Skip to content

Commit a7f7041

Browse files
committed
Fix Live Evaluation API tests #1953
Signed-off-by: Michael Ehab Mikhail <michael.ehab@hotmail.com>
1 parent ba3b3c1 commit a7f7041

1 file changed

Lines changed: 20 additions & 2 deletions

File tree

vulnerabilities/tests/test_api_v2.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from vulnerabilities.models import Alias
2424
from vulnerabilities.models import ApiUser
2525
from vulnerabilities.models import CodeFixV2
26+
from vulnerabilities.models import LivePipelineRun
2627
from vulnerabilities.models import Package
2728
from vulnerabilities.models import PackageV2
2829
from vulnerabilities.models import PipelineRun
@@ -911,12 +912,27 @@ def setUp(self):
911912
self.url = "/api/v2/live-evaluation/evaluate"
912913

913914
@patch("vulnerabilities.api_v2.LIVE_IMPORTERS_REGISTRY")
914-
def test_evaluate_success(self, mock_registry):
915+
@patch("vulnerabilities.api_v2.enqueue_ad_hoc_pipeline")
916+
@patch("vulnerabilities.models.PipelineRun.objects.get")
917+
@patch("vulnerabilities.models.LivePipelineRun.objects.create")
918+
def test_evaluate_success(
919+
self, mock_live_create, mock_pipeline_get, mock_enqueue, mock_registry
920+
):
915921
class MockImporter:
916922
pipeline_id = "pypa_live_importer_v2"
917923
supported_types = ["pypi"]
918924

919925
mock_registry.values.return_value = [MockImporter]
926+
mock_live_run = type("MockLiveRun", (), {"run_id": "mock-live-id"})()
927+
mock_live_create.return_value = mock_live_run
928+
mock_enqueue.return_value = "mock-run-id"
929+
mock_pipeline_run = type(
930+
"MockPipelineRun",
931+
(),
932+
{"run_id": "mock-run-id", "live_pipeline": None, "save": lambda self: None},
933+
)()
934+
mock_pipeline_get.return_value = mock_pipeline_run
935+
920936
data = {"purl": "pkg:pypi/django@3.2"}
921937
response = self.client.post(self.url, data, format="json")
922938
assert response.status_code == 202
@@ -943,7 +959,9 @@ def test_evaluate_invalid_purl(self):
943959
assert response.status_code == 400
944960
assert "Invalid PackageURL" in response.data["error"]
945961

946-
def test_status_not_found(self):
962+
@patch("vulnerabilities.models.LivePipelineRun.objects.get")
963+
def test_status_not_found(self, mock_live_get):
964+
mock_live_get.side_effect = LivePipelineRun.DoesNotExist()
947965
url = "/api/v2/live-evaluation/status/00000000-0000-0000-0000-000000000000"
948966
response = self.client.get(url)
949967
assert response.status_code == 404

0 commit comments

Comments
 (0)