示例#1
0
def generate_datasets(spec_path):
    try:
        generator = \
            GeneratorsHandler(arguments={'config_file': spec_path})
        for dset_name, dset_format, dset_path in generator.generate():
            click.echo("| Finished!\n"
                       f"| Dataset name: {dset_name}\n"
                       f"| Dataset format: {dset_format}\n"
                       f"| Dataset: {dset_path}\n")
    except Exception as err:
        click.echo(f"Error: {err}")
示例#2
0
    def test_timestamp_dataframe(self, mocker, timestamp_specification):
        mock = mocker.patch \
                     .object(GeneratorsHandler, 'valid_specification_dataset')
        mock.return_value = timestamp_specification
        handler = GeneratorsHandler({"config_file": None})
        specification = handler.valid_specification_dataset()
        dataframe = handler.generate_dataframe(specification)

        assert isinstance(dataframe, DataFrame) is True
        assert dataframe.shape[0] == timestamp_specification['size']
        for field in timestamp_specification['fields']:
            assert dataframe[field['name']].dtype.name == field['expected']
示例#3
0
    def test_bool_dataframe(self, mocker, bool_specification):
        with patch('builtins.open',
                   mock_open(read_data=json.dumps(bool_specification))):
            dataset = bool_specification['datasets']['sample']
            expected_size = dataset['size']
            expected_fields = dataset['fields']

            handler = GeneratorsHandler({"config_file": None})
            dataframe = handler.generate_dataframe(dataset)

            assert isinstance(dataframe, DataFrame) is True
            assert dataframe.shape[0] == expected_size
            for field in expected_fields:
                assert dataframe[field['name']].dtype.name == field['expected']
示例#4
0
 def test_invalid_no_ids_spec_handler(self, mocker, invalid_no_ids_dataset):
     with patch('builtins.open',
                mock_open(
                    read_data=json.dumps(invalid_no_ids_dataset))) as mock:
         with pytest.raises(ValueError):
             GeneratorsHandler({"config_file": ""})
         mock.assert_called()
示例#5
0
    def test_without_dataset(self, mocker, no_datasets_specification):
        data = json.dumps(no_datasets_specification)
        with patch('builtins.open', mock_open(read_data=data)) as mock:

            with raises(ValueError):
                GeneratorsHandler(arguments={'config_file': None})
            mock.assert_called()
示例#6
0
    def test_generate(self, mocker, valid_specification):
        mock_write = mocker.patch \
                           .object(GeneratorsHandler, 'write_dataframe')
        mock_write.return_value = 'file_path'
        mock_config = mocker.patch \
                            .object(GeneratorsHandler,
                                    'valid_specification_dataset')
        mock_config.return_value = valid_specification

        handler = GeneratorsHandler(arguments={'config_file': None})
        for key, format_, path in handler.generate():
            assert key is not None
            assert isinstance(key, str)
            assert format_ is not None
            assert isinstance(format_, str)
            assert path is not None
            assert isinstance(path, str)

        mock_write.assert_called()
示例#7
0
    def test_write(self, mocker, valid_specification):
        mock_config = mocker.patch \
                            .object(GeneratorsHandler,
                                    'valid_specification_dataset')
        mock_config.return_value = valid_specification

        handler = GeneratorsHandler(arguments={'config_file': None})
        for key in valid_specification['datasets'].keys():
            dataset = valid_specification['datasets'][key]
            dataset_format = dataset['format']
            dataframe = handler.generate_dataframe(dataset)
            for destination in dataset['serializers']['to']:
                file_type = destination['type']
                writer = writers[file_type]
                mock = mocker.patch.object(writer, 'write')
                mock.return_value = 'file_path'
                file_path = handler.write_dataframe(dataframe=dataframe,
                                                    destination=destination,
                                                    format_=dataset_format)

                mock.assert_called()
                assert file_path == 'file_path'
示例#8
0
    def test_invalid_no_dataset_info(self, mocker,
                                     invalid_dataset_specification):
        from os.path import abspath
        from uuid import uuid4

        absolute_path = abspath(".")
        file_name = uuid4()
        with open(f"{absolute_path}/{file_name}", "w") as f:
            json.dump(invalid_dataset_specification, f)

        with pytest.raises(ValueError):
            GeneratorsHandler({"config_file": f"{absolute_path}/{file_name}"})
        remove(f"{absolute_path}/{file_name}")
示例#9
0
    def test_valid_spec_handler(self, mocker, valid_specification):
        from os.path import abspath
        from uuid import uuid4

        absolute_path = abspath(".")
        file_name = uuid4()
        with open(f"{absolute_path}/{file_name}", "w") as f:
            json.dump(valid_specification, f)

        handler = \
            GeneratorsHandler({"config_file": f"{absolute_path}/{file_name}"})

        remove(f"{absolute_path}/{file_name}")
        assert handler
示例#10
0
    def test_valid_specification(self, mocker, valid_specification):
        data = json.dumps(valid_specification)
        with patch('builtins.open', mock_open(read_data=data)) as mock:
            GeneratorsHandler(arguments={'config_file': None})

            mock.assert_called()