# pylint: disable=protected-access, unused-argument, too-many-arguments import pytest from db_schema.schemas import slz @pytest.mark.parametrize( 'content_status, failure_count, releases_amount', [ ('ACTIVE', 0, 3), ('FAILED', 1, 3), ('COMPLETE', 0, 2), ('FAILED', 3, 2), ] ) @pytest.mark.integration def test_get_unprocessed_releases_by_status( db, uploaded_releases, config_test, releases_service, unit_of_work, content_status, failure_count, releases_amount, clean_db ): """ config_test.release_batch_size == 3 s3_release_list == [ 'A10301A0000935334X_20201116181657943', 'A10301A0001138785R_20201116181529203', 'A10301A0001267574Q_20201116181542913', ] """ assert len(releases_service.get_unprocessed_releases()) == config_test.release_batch_size report = db.session.query(slz.Report).filter_by(report_name='release_message').one() unit_of_work.report = report db.session.flush() db.session.add( slz.ContentStatus( **{ 'unit_of_work_id': unit_of_work.unit_of_work_id, 'context': 'A10301A0000935334X_20201116181657943', # first release from S3 'content_status': content_status, 'content_name': '', 'failure_count': failure_count, 'latest_job_id': 'ddex-20210427-sme-release_message-v1_26640_20210428T12.14.07', 'created_at': '2021-04-07 12:30:17', 'last_checked_at': '2021-04-09 12:30:17', 'metadata_process_status': 'NOT_QUEUED', } ) ) assert len(releases_service.get_unprocessed_releases()) == releases_amount @pytest.mark.integration def test_get_unprocessed_releases_by_existent_cs( db, uploaded_releases, config_test, releases_service, unit_of_work, clean_db ): """ config_test.release_batch_size == 3 s3_release_list == [ 'A10301A0000935334X_20201116181657943', 'A10301A0001138785R_20201116181529203', 'A10301A0001267574Q_20201116181542913', ] """ assert len(releases_service.get_unprocessed_releases()) == 3 report = db.session.query(slz.Report).filter_by(report_name='release_message').one() unit_of_work.report = report db.session.flush() slz_cs_data = { 'unit_of_work_id': unit_of_work.unit_of_work_id, 'context': 'A10301A0000935334X_20201116181657943', # first release from S3 'content_status': 'COMPLETE', 'content_name': '', 'failure_count': 0, 'latest_job_id': 'ddex-20210427-sme-release_message-v1_26640_20210428T12.14.07', 'created_at': '2021-04-07 12:30:17', 'last_checked_at': '2021-04-09 12:30:17', 'metadata_process_status': 'NOT_QUEUED', } db.session.add(slz.ContentStatus(**slz_cs_data)) assert len(releases_service.get_unprocessed_releases()) == 2 slz_cs_data['context'] = 'A10301A0001267574Q_20201116181542913' # last release from S3 db.session.add(slz.ContentStatus(**slz_cs_data)) assert len(releases_service.get_unprocessed_releases()) == 0