"""Lambda test fixtures.""" from decimal import Decimal from unittest.mock import Mock import pytest @pytest.fixture def db_conn(): """Mock database connection and cursor method. Usage: @patch('main.util') def test_some_func(util, db_conn): util.get_database.return_value = db_conn # tests assert db_conn._cursor.called """ cursor = Mock() connection = Mock() connection._cursor = cursor connection.cursor.return_value = cursor return connection @pytest.fixture def upcs(): """Mock UPCs.""" return [123, 234, 345, 456, 567, 678] @pytest.fixture def upc_rows(): """Mock UPC database rows.""" return [ {'upc': 123}, {'upc': 234}, {'upc': 345}, {'upc': 456}, {'upc': 567}, {'upc': 678}] @pytest.fixture def upc_snapshots_slice_good(): """Mock UPCs with last two amount snapshots.""" return [ { 'upc': 123, 'amount_previous': Decimal(23), 'amount_latest': Decimal(123)}, { 'upc': 234, 'amount_previous': Decimal(34), 'amount_latest': Decimal(234)}, { 'upc': 345, 'amount_previous': Decimal(45), 'amount_latest': Decimal(345)}] @pytest.fixture def upc_snapshots_slice_bad(): """Mock snapshots with only the bad snapshots.""" return [ { 'upc': 456, 'amount_previous': Decimal(456), 'amount_latest': Decimal(56)}, { 'upc': 567, 'amount_previous': Decimal(567), 'amount_latest': Decimal(67)}] @pytest.fixture def upc_snapshots_slice_new(): """Mock snapshots with only new snapshots.""" return [ { 'upc': 678, 'amount_previous': None, 'amount_latest': Decimal(78)}] @pytest.fixture def upc_snapshots(): """Mock snapshots with good, bad, and new snapshots.""" snapshots = upc_snapshots_slice_good() + \ upc_snapshots_slice_bad() + \ upc_snapshots_slice_new() return snapshots