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