-def test_add_tiger_data(dsn, src_dir, def_config, monkeypatch,tmp_path,
- temp_db_cursor, threads, temp_db):
- monkeypatch.setenv('NOMINATIM_DATABASE_MODULE_PATH', '.')
- temp_db_cursor.execute('CREATE EXTENSION hstore')
- temp_db_cursor.execute('CREATE EXTENSION postgis')
- temp_db_cursor.execute('CREATE TABLE place (id INT)')
-
- database_import.import_base_data('dbname=' + temp_db, src_dir / 'data',
- ignore_partitions=False)
- sqlfile = tmp_path / '1010.sql'
- sqlfile.write_text("""INSERT INTO place values (1)""")
- tiger_data.add_tiger_data(dsn, str(tmp_path), threads, def_config, src_dir / 'lib-sql')
-
- assert temp_db_cursor.table_rows('place') == 1
\ No newline at end of file
+def test_add_tiger_data(def_config, src_dir, tiger_table, tokenizer_mock, threads):
+ tiger_data.add_tiger_data(str(src_dir / 'test' / 'testdb' / 'tiger'),
+ def_config, threads, tokenizer_mock())
+
+ assert tiger_table.count() == 6213
+
+
+def test_add_tiger_data_no_files(def_config, tiger_table, tokenizer_mock,
+ tmp_path):
+ tiger_data.add_tiger_data(str(tmp_path), def_config, 1, tokenizer_mock())
+
+ assert tiger_table.count() == 0
+
+
+def test_add_tiger_data_bad_file(def_config, tiger_table, tokenizer_mock,
+ tmp_path):
+ sqlfile = tmp_path / '1010.csv'
+ sqlfile.write_text("""Random text""")
+
+ tiger_data.add_tiger_data(str(tmp_path), def_config, 1, tokenizer_mock())
+
+ assert tiger_table.count() == 0
+
+
+def test_add_tiger_data_hnr_nan(def_config, tiger_table, tokenizer_mock,
+ csv_factory, tmp_path):
+ csv_factory('file1', hnr_from=99)
+ csv_factory('file2', hnr_from='L12')
+ csv_factory('file3', hnr_to='12.4')
+
+ tiger_data.add_tiger_data(str(tmp_path), def_config, 1, tokenizer_mock())
+
+ assert tiger_table.count() == 1
+ assert tiger_table.row()['start'] == 99
+
+
+@pytest.mark.parametrize("threads", (1, 5))
+def test_add_tiger_data_tarfile(def_config, tiger_table, tokenizer_mock,
+ tmp_path, src_dir, threads):
+ tar = tarfile.open(str(tmp_path / 'sample.tar.gz'), "w:gz")
+ tar.add(str(src_dir / 'test' / 'testdb' / 'tiger' / '01001.csv'))
+ tar.close()
+
+ tiger_data.add_tiger_data(str(tmp_path / 'sample.tar.gz'), def_config, 1,
+ tokenizer_mock())
+
+ assert tiger_table.count() == 6213
+
+
+def test_add_tiger_data_bad_tarfile(def_config, tiger_table, tokenizer_mock,
+ tmp_path):
+ tarfile = tmp_path / 'sample.tar.gz'
+ tarfile.write_text("""Random text""")
+
+ with pytest.raises(UsageError):
+ tiger_data.add_tiger_data(str(tarfile), def_config, 1, tokenizer_mock())
+
+
+def test_add_tiger_data_empty_tarfile(def_config, tiger_table, tokenizer_mock,
+ tmp_path, src_dir):
+ tar = tarfile.open(str(tmp_path / 'sample.tar.gz'), "w:gz")
+ tar.add(__file__)
+ tar.close()
+
+ tiger_data.add_tiger_data(str(tmp_path / 'sample.tar.gz'), def_config, 1,
+ tokenizer_mock())
+
+ assert tiger_table.count() == 0
+