"""Test revenue model.""" from unittest.mock import Mock from unittest.mock import patch from api.models import revenue @patch('api.models.revenue.constants') @patch('api.models.revenue.fetch_all_time_all_revenue') def test_fetch_all_time_buckets_sales( fetch_all_time, constants, revenue_all_time, revenue_all_time_buckets): """Test fetch_all_time_buckets correctly aggregates sales data.""" constants.SERIES_BUCKETS = {'odds': {1, 3}, 'evens': {2, 4}} fetch_all_time.return_value = revenue_all_time results = revenue.fetch_all_time_buckets('123') expected = revenue_all_time_buckets assert results == expected def test_fetch_all_time_all_revenue(monkeypatch): """Test fetch_all_time_all_revenue function.""" upc = 888812345678 query_result = ({'foo': 'bar'}, {'dummy': 'data'}) cursor_mock = Mock(fetchall=Mock(return_value=query_result)) aurora_context_mock = Mock( __exit__=Mock(), __enter__=Mock(return_value=(cursor_mock, Mock()))) monkeypatch.setattr(revenue.aurora, 'context', Mock( return_value=aurora_context_mock)) result = revenue.fetch_all_time_all_revenue(upc) assert cursor_mock.execute.called_once assert cursor_mock.fetchall.called assert result == query_result execute_args = cursor_mock.execute.call_args_list[0][0][1] assert execute_args.get('upc') == upc