"""Lambda test module.""" import pytest from sosmodels import consts as sos_consts import consts # noqa import util def test_totals_as_dict(): """Test test_totals_as_dict function.""" # mocking mock_value = 1 mock_transactiontype = 10 expected_totals = {} mock_item_data = {'mock_key1': 'mock_value1'} for metric in sos_consts.TOTAL_METRICS: expected_totals[metric] = mock_value mock_item_data[ util.DB_FIELD_PATTERN.format( tid=mock_transactiontype, metric=metric)] = mock_value # test function call result = util.totals_as_dict( mock_item_data, mock_transactiontype) # checking assert result == expected_totals def test_extract_triggered_key(): """Test extract_triggered_key function.""" test_bucket = 'test_bucket' test_key = 'test_bucket' event_mock = {'Records': [{ 's3': {'bucket': {'name': test_bucket}, 'object': {'key': test_key}} }]} key, bucket = util.extract_triggered_key(event_mock) assert bucket == test_bucket assert key == test_key def test_object_is_file_positive(): """Test object_is_file function positive.""" assert util.object_is_file('test_file') def test_object_is_file_negative(): """Test object_is_file function negative.""" assert not util.object_is_file('test_file/') @pytest.fixture( params=[consts.SPOTIFY, consts.APPLE_MUSIC]) def retailer_type(request): """Total store type fixture.""" return request.param def test_identify_retailer(retailer_type): """Test identify_retailer function.""" test_key_path = 'test/{}/path'.format(retailer_type) result = util.identify_retailer(test_key_path) assert result == retailer_type