1from unittest.mock import MagicMock, patch 2 3import pytest 4import yaml 5from freezegun import freeze_time 6 7from .lava.helpers import generate_testsuite_result, jobs_logs_response 8 9 10def pytest_configure(config): 11 config.addinivalue_line( 12 "markers", "slow: marks tests as slow (deselect with '-m \"not slow\"')" 13 ) 14 15@pytest.fixture 16def mock_sleep(): 17 """Mock time.sleep to make test faster""" 18 with patch("time.sleep", return_value=None): 19 yield 20 21 22@pytest.fixture 23def frozen_time(mock_sleep): 24 with freeze_time() as frozen_time: 25 yield frozen_time 26 27 28RESULT_GET_TESTJOB_RESULTS = [{"metadata": {"result": "test"}}] 29 30 31@pytest.fixture 32def mock_proxy(): 33 def create_proxy_mock( 34 job_results=RESULT_GET_TESTJOB_RESULTS, 35 testsuite_results=[generate_testsuite_result()], 36 **kwargs 37 ): 38 proxy_mock = MagicMock() 39 proxy_submit_mock = proxy_mock.scheduler.jobs.submit 40 proxy_submit_mock.return_value = "1234" 41 42 proxy_results_mock = proxy_mock.results.get_testjob_results_yaml 43 proxy_results_mock.return_value = yaml.safe_dump(job_results) 44 45 proxy_test_suites_mock = proxy_mock.results.get_testsuite_results_yaml 46 proxy_test_suites_mock.return_value = yaml.safe_dump(testsuite_results) 47 48 proxy_logs_mock = proxy_mock.scheduler.jobs.logs 49 proxy_logs_mock.return_value = jobs_logs_response() 50 51 for key, value in kwargs.items(): 52 setattr(proxy_logs_mock, key, value) 53 54 return proxy_mock 55 56 yield create_proxy_mock 57