コード例 #1
0
    def test_create_v2_catalog(self, mock_reporter):
        mockDB = MockDynamodbHandler()
        mockDB._load_db(
            os.path.join(TestUwV2Catalog.resources_dir, 'ready_new_db.json'))
        mockV3Api = MockAPI(os.path.join(self.resources_dir, 'v3_api'),
                            'https://api.door43.org/')
        mockV3Api.add_host(os.path.join(self.resources_dir, 'v3_cdn'),
                           'https://cdn.door43.org/')
        mockV2Api = MockAPI(os.path.join(self.resources_dir, 'v2_api'),
                            'https://test')
        mockS3 = MockS3Handler('uw_bucket')
        mockSigner = MockSigner()
        mockLogger = MockLogger()

        converter = UwV2CatalogHandler(
            event=self._make_event(),
            context=None,
            logger=mockLogger,
            s3_handler=mockS3,
            dynamodb_handler=mockDB,
            url_handler=mockV3Api.get_url,
            download_handler=mockV3Api.download_file,
            signing_handler=mockSigner)
        converter.run()

        assert_s3_equals_api_json(self, mockS3, mockV2Api,
                                  'v2/uw/catalog.json')
        assert_s3_equals_api_json(self, mockS3, mockV2Api,
                                  'v2/uw/obs/en/obs/v4/source.json')
        assert_s3_equals_api_text(self, mockS3, mockV2Api,
                                  'v2/uw/gen/en/udb/v7/gen.usfm')
        assert_s3_equals_api_text(self, mockS3, mockV2Api,
                                  'v2/uw/1ch/en/ulb/v7/1ch.usfm')
        self.assertIn('v2/uw/obs/en/obs/v4/source.json.sig',
                      mockS3._recent_uploads)
        self.assertIn('uw/txt/2/catalog.json', mockS3._recent_uploads)
        self.assertIn(
            'en_udb_1ch: media format "https://cdn.door43.org/en/udb/v9/1ch.pdf" does not match source version "7" and will be excluded.',
            mockLogger._messages)
        self.assertIn(
            'en_obs_obs: media format "https://cdn.door43.org/en/obs/v999/129kbps/en_obs_129kbps.zip" does not match source version "4" and will be excluded.',
            mockLogger._messages)
コード例 #2
0
    def test_status_not_ready(self, mock_reporter):
        mockDB = MockDynamodbHandler()
        mockDB._load_db(
            os.path.join(TestUwV2Catalog.resources_dir, 'not_ready_db.json'))
        mockV3Api = MockAPI(os.path.join(self.resources_dir, 'v3_api'),
                            'https://api.door43.org/')
        mockS3 = MockS3Handler('uw_bucket')
        mockSigner = MockSigner()
        mockLogger = MockLogger()

        converter = UwV2CatalogHandler(
            event=self._make_event(),
            context=None,
            logger=mockLogger,
            s3_handler=mockS3,
            dynamodb_handler=mockDB,
            url_handler=mockV3Api.get_url,
            download_handler=mockV3Api.download_file,
            signing_handler=mockSigner)
        result = converter._get_status()
        self.assertFalse(result)
コード例 #3
0
    def test_status_ready_new_db(self, mock_reporter):
        mockDB = MockDynamodbHandler()
        mockDB._load_db(
            os.path.join(TestUwV2Catalog.resources_dir, 'ready_new_db.json'))
        mockV3Api = MockAPI(os.path.join(self.resources_dir, 'v3_api'),
                            'https://api.door43.org/')
        mockS3 = MockS3Handler('uw_bucket')
        mockSigner = MockSigner()
        mockLogger = MockLogger()

        converter = UwV2CatalogHandler(
            event=self._make_event(),
            context=None,
            logger=mockLogger,
            s3_handler=mockS3,
            dynamodb_handler=mockDB,
            url_handler=mockV3Api.get_url,
            download_handler=mockV3Api.download_file,
            signing_handler=mockSigner)
        (status, source_status) = converter._get_status()
        self.assertEqual('complete', source_status['state'])
        self.assertEqual('in-progress', status['state'])
        self.assertEqual(0, len(status['processed']))
コード例 #4
0
ファイル: main.py プロジェクト: unfoldingWord-dev/d43-catalog
def handle(event, context):
    wipe_temp(ignore_errors=True)
    catalog = UwV2CatalogHandler(event, context, logger)
    return catalog.run()