Example #1
0
    def test_import_dataset_mode_delete(self, mock_progress_ticker):
        _self = MagicMock()
        _self.mode = ImportMode.DELETE

        with patch("builtins.open", mock_open(read_data="")) as m:
            ImportClient.import_dataset(_self)

            m.assert_called_once()
            m.mock_calls[1] = call().write("[")
            m.mock_calls[2] = call().write("]")
            m.mock_calls[3] = call().close()

        _self.merger.assert_not_called()
        _self.import_rows.assert_not_called()
        _self.entity_validator.assert_not_called()
        _self.get_result_msg.assert_called_once()
Example #2
0
    def test_import_dataset_exception(self, mock_traceback, mock_ProgressTicker, mock_ContentsWriter):
        _self = MagicMock()
        _self.get_result_msg.return_value = 'res'
        writer = MagicMock()
        writer.side_effect = Exception('Boom')
        mock_ContentsWriter.return_value.__enter__ = writer

        res = ImportClient.import_dataset(_self)

        self.assertEqual(res, 'res')
        self.assertEqual(len(_self.logger.error.call_args_list), 2)
        mock_traceback.format_exc.assert_called_once_with(limit=-5)
Example #3
0
    def test_import_dataset(self, mock_ProgressTicker, mock_ContentsWriter):
        _self = MagicMock()
        _self.get_result_msg.return_value = 'res'
        writer = MagicMock()
        mock_ContentsWriter.return_value.__enter__.return_value = writer
        filename = 'fname'
        writer.filename = filename
        writer.write = 'write'
        progress = MagicMock()
        mock_ProgressTicker.return_value.__enter__.return_value = progress

        res = ImportClient.import_dataset(_self)

        self.assertEqual(res, 'res')
        mock_ProgressTicker.called_once()
        _self.merger.prepare.assert_called_once_with(progress)
        self.assertEqual(_self.filename, filename)
        _self.import_rows.assert_called_once_with('write', progress)
        _self.merger.finish.assert_called_once_with('write')
        _self.entity_validator.result.assert_called_once()
Example #4
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()