• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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