def test_publish(self): logger = MagicMock() self.import_client = ImportClient(self.mock_dataset, self.mock_msg, logger) self.import_client.n_rows = 10 self.import_client.filename = "filename" msg = self.import_client.get_result_msg() self.assertEqual(msg['contents_ref'], 'filename') self.assertEqual(msg['summary']['num_records'], 10) self.assertEqual(msg['header']['version'], 0.1)
def test_publish_delete_mode(self): logger = MagicMock() self.import_client = ImportClient(self.mock_dataset, self.mock_msg, logger, ImportMode.DELETE) self.import_client.n_rows = 0 self.import_client.filename = "filename" app = self.mock_dataset['source']['application'] entity = self.mock_dataset['entity'] msg1 = f"Import dataset {entity} from {app} (mode = DELETE) started" logger.info.assert_called_with(msg1) self.import_client.get_result_msg() msg2 = f"Import dataset {entity} from {app} completed. " \ "0 records imported, all known entities will be marked as deleted." logger.info.assert_called_with(msg2, kwargs={'data': {'num_records': 0}})
def handle_import_msg(msg): dataset = extract_dataset_from_msg(msg) msg['header'] |= { 'source': dataset['source']['name'], 'application': dataset['source']['application'], 'catalogue': dataset['catalogue'], 'entity': dataset['entity'], } logger.configure(msg, "IMPORT") header = msg.get('header', {}) # Create a new import client and start the process mode = ImportMode(header.get('mode', ImportMode.FULL.value)) import_client = ImportClient(dataset=dataset, msg=msg, mode=mode, logger=logger) return import_client.import_dataset()
def test_init(self): logger = MagicMock() self.import_client = ImportClient(self.mock_dataset, self.mock_msg, logger) logger.info.assert_called()