def test_raise_error_unknown_file(): """Throw error if picking unknown file.""" options = {'input_files': ['Sparta.lol']} with pytest.raises(KeyError) as excinfo: process.Packager(options) excinfo.match('File ([a-zA-Z_\.\'].*) not found in file list.')
def test_raise_error_unknown_field(): """Throw error if picking unknown field.""" options = {'fields': ['kHello']} with pytest.raises(KeyError) as excinfo: process.Packager(options) excinfo.match('Field ([a-zA-Z].*) not found in file list.')
def bootstrap_unihan(metadata, options={}): """Download, extract and import unihan to database.""" options = merge_dict(UNIHAN_ETL_DEFAULT_OPTIONS.copy(), options) p = unihan.Packager(options) p.download() data = p.export() table = create_unihan_table(UNIHAN_FIELDS, metadata) metadata.create_all() metadata.bind.execute(table.insert(), data)
def test_raise_error_unknown_field_filtered_files(): """Throw error field not in file list, when files specified.""" files = ['Unihan_Variants.txt'] options = {'input_files': files, 'fields': ['kDefinition']} with pytest.raises(KeyError) as excinfo: process.Packager(options) excinfo.match('Field ([a-zA-Z].*) not found in file list.')
def test_pick_files(mock_zip_file): """Pick a white list of files to build from.""" files = ['Unihan_Readings.txt', 'Unihan_Variants.txt'] options = {'input_files': files, 'zip_path': str(mock_zip_file)} b = process.Packager(options) result = b.options['input_files'] expected = files assert result == expected, 'Returns only the files picked.'
def test_set_reduce_fields_automatically_when_only_files_specified(): """Picks only necessary files when fields specified.""" files = ['Unihan_Readings.txt', 'Unihan_Variants.txt'] options = {'input_files': files} b = process.Packager(options) results = process.get_fields(process.filter_manifest(files)) expected = b.options['fields'] assert set(expected) == set( results), 'Returns only the fields for files picked.'
def test_set_reduce_files_automatically_when_only_field_specified(): """Picks file automatically if none specified and fields are.""" fields = (constants.UNIHAN_MANIFEST['Unihan_Readings.txt'] + constants.UNIHAN_MANIFEST['Unihan_Variants.txt']) options = {'fields': fields} b = process.Packager(options) expected = ['Unihan_Readings.txt', 'Unihan_Variants.txt'] results = b.options['input_files'] assert set(expected) == set(results)
def bootstrap_data(options={}): options = merge_dict(UNIHAN_ETL_DEFAULT_OPTIONS.copy(), options) p = unihan.Packager(options) p.download() return p.export()