import unittest from moto import mock_dynamodb2 from slz_api_service.v1.constants import SOURCE_DATA_TABLE_NAME from slz_api_service.v1.data_models.dynamo_db import DyContentStatus from slz_api_service.v1.enums import DateConfig from slz_api_service.v1.utils import DateUtils from tests.v1.constants import DY_DB_DATA_AMAZON_ADS @mock_dynamodb2 class BaseTestCase(unittest.TestCase): def setUp(self): self.table_name = SOURCE_DATA_TABLE_NAME DyContentStatus.create_table(read_capacity_units=2, write_capacity_units=2) self.item_1 = { 'UnitOfWorkID': 'apple-20190811-sme-amEvent-v1_2', 'ContentName': 'AppleMusic_Event_86759344_20190811_V1_2.txt.gz', 'FileSize': 123, 'Context': '4632::86759344', 'CompletedAt': '2019-09-09T18:06:43.138878+00:00', 'ContentStatus': 'COMPLETE', } self.item_2 = { 'UnitOfWorkID': 'apple-20190812-sme-amEvent-v1_2', 'ContentName': 'AppleMusic_Event_86759344_20190812_V1_2.txt.gz', 'FileSize': 234, 'Context': '4632::86759356', 'CompletedAt': '2019-09-10T18:06:43.138878+00:00', 'ContentStatus': 'COMPLETE', } self.item_3 = { 'UnitOfWorkID': 'spotify-20190917-sme-tracks-v1', 'ContentName': 'tracks_20190917.gz', 'FileSize': 116, 'Context': 'tracks', 'CompletedAt': '2019-09-23T09:15:30.901038+00:00', 'ContentStatus': 'COMPLETE', } self.item_4_amazon = DY_DB_DATA_AMAZON_ADS for item in (self.item_1, self.item_2, self.item_3, self.item_4_amazon): dt = DateUtils.from_str(item['CompletedAt'], fmt=DateConfig.TimestampFormat.value) model = DyContentStatus(hash_key=item['UnitOfWorkID'], range_key=item['ContentName']) model.file_size = item['FileSize'] model.context = item['Context'] model.created_at = dt model.completed_at = dt model.last_checked_at = dt model.content_status = item['ContentStatus'] model.job_id = 'testing' model.original_content_name = item.get('OriginalContentName') model.save() def tearDown(self): DyContentStatus.delete_table()