+def test_check_sanity_class(special_phrases_importer):
+ """
+ Check for _check_sanity() method.
+ If a wrong class or type is given, an UsageError should raise.
+ If a good class and type are given, nothing special happens.
+ """
+ with pytest.raises(UsageError) as wrong_class:
+ special_phrases_importer._check_sanity('en', '', 'type')
+
+ with pytest.raises(UsageError) as wrong_type:
+ special_phrases_importer._check_sanity('en', 'class', '')
+
+ special_phrases_importer._check_sanity('en', 'class', 'type')
+
+ assert wrong_class and wrong_type
+
+def test_load_white_and_black_lists(special_phrases_importer):
+ """
+ Test that _load_white_and_black_lists() well return
+ black list and white list and that they are of dict type.
+ """
+ black_list, white_list = special_phrases_importer._load_white_and_black_lists()
+
+ assert isinstance(black_list, dict) and isinstance(white_list, dict)
+
+def test_convert_php_settings(special_phrases_importer):
+ """
+ Test that _convert_php_settings_if_needed() convert the given
+ php file to a json file.
+ """
+ php_file = (TEST_BASE_DIR / 'testfiles' / 'phrase_settings.php').resolve()
+
+ with tempfile.TemporaryDirectory() as temp_dir:
+ temp_settings = (Path(temp_dir) / 'phrase_settings.php').resolve()
+ copyfile(php_file, temp_settings)
+ special_phrases_importer._convert_php_settings_if_needed(temp_settings)
+
+ assert (Path(temp_dir) / 'phrase_settings.json').is_file()
+
+def test_convert_settings_wrong_file(special_phrases_importer):
+ """
+ Test that _convert_php_settings_if_needed() raise an exception
+ if the given file is not a valid file.
+ """
+
+ with pytest.raises(UsageError) as exceptioninfos:
+ special_phrases_importer._convert_php_settings_if_needed('random_file')
+
+ assert str(exceptioninfos.value) == 'random_file is not a valid file.'
+
+def test_convert_settings_json_already_exist(special_phrases_importer):
+ """
+ Test that if we give to '_convert_php_settings_if_needed' a php file path
+ and that a the corresponding json file already exists, it is returned.
+ """
+ php_file = (TEST_BASE_DIR / 'testfiles' / 'phrase_settings.php').resolve()
+ json_file = (TEST_BASE_DIR / 'testfiles' / 'phrase_settings.json').resolve()
+
+ returned = special_phrases_importer._convert_php_settings_if_needed(php_file)
+
+ assert returned == json_file
+
+def test_convert_settings_giving_json(special_phrases_importer):
+ """
+ Test that if we give to '_convert_php_settings_if_needed' a json file path
+ the same path is directly returned
+ """
+ json_file = (TEST_BASE_DIR / 'testfiles' / 'phrase-settings.json').resolve()
+
+ returned = special_phrases_importer._convert_php_settings_if_needed(json_file)
+
+ assert returned == json_file
+
+def test_process_amenity_with_operator(special_phrases_importer, getorcreate_amenityoperator_funcs,
+ word_table, temp_db_conn):
+ """
+ Test that _process_amenity() execute well the
+ getorcreate_amenityoperator() SQL function and that
+ the 2 differents operators are well handled.
+ """