"""Lambda conftest module.""" from datetime import timezone import pytest @pytest.fixture def mock_repos(): """Fixture for valid mock GitHub repository data.""" return [ {'name': 'repo1', 'url': 'https://github.com/org/repo1', 'createdAt': '2024-06-01T12:00:00Z'}, {'name': 'repo2', 'url': 'https://github.com/org/repo2', 'createdAt': '2024-06-02T12:00:00Z'}, ] @pytest.fixture def mock_bad_repo(): """Fixture for invalid mock GitHub repository with unparsable date.""" return [ {'name': 'bad-repo', 'url': 'https://github.com/org/bad-repo', 'createdAt': 'invalid-date-format'}, ] @pytest.fixture def mock_run_time(): """Fixture for a mock run timestamp in UTC.""" return '2024-06-03 12:00:00 UTC' @pytest.fixture def mock_dependencies(mocker): """Fixture to mock shared dependencies for functions in 'src.app'.""" mock_post = mocker.patch('src.app.requests.post') mock_logger = mocker.patch('src.app.logger') mock_ses = mocker.patch('src.app.ses') return { 'logger': mock_logger, 'request_post': mock_post, 'ses': mock_ses, } @pytest.fixture def mock_handler_dependencies(mocker, mock_run_time): """Fixture to mock handler-specific function dependencies in 'src.app'.""" mock_get_public_repos = mocker.patch('src.app.get_public_repos') mock_notify = mocker.patch('src.app.notify') mock_logger = mocker.patch('src.app.logger') mock_datadog = mocker.patch('src.app.datadog') mock_datetime = mocker.patch('src.app.datetime') mock_now = mocker.Mock() mock_now.strftime.return_value = mock_run_time mock_datetime.now.return_value = mock_now mock_datetime.now.return_value.tzinfo = timezone.utc return { 'get_public_repos': mock_get_public_repos, 'notify': mock_notify, 'logger': mock_logger, 'datetime': mock_datetime, 'datadog': mock_datadog, }