# coding=utf-8 import pytest import osex.locate import os def test_local_db_files(tmpdir): test_dir_path = tmpdir.strpath os.chdir(test_dir_path) # prepare dir open('file1', 'w').close() open('file2', 'w').close() os.makedirs(os.path.join('dir', 'subdir1')) os.makedirs(os.path.join('dir', 'subdir2')) # update db database_path = os.path.join(test_dir_path, 'db') osex.locate.update_locate_database(database_path = database_path, root_path = test_dir_path, require_visibility = False) # locate results = osex.locate.locate( [test_dir_path + '*file*'], database_path = database_path ) assert results == [os.path.join(test_dir_path, p) for p in [ 'file1', 'file2', ]] def test_local_db_files_unicode(tmpdir): test_dir_path = tmpdir.strpath os.chdir(test_dir_path) # prepare dir open(u'file-ä', 'w').close() open(u'file-Ö', 'w').close() open(u'file-ß', 'w').close() # update db database_path = os.path.join(test_dir_path, 'db') osex.locate.update_locate_database(database_path = database_path, root_path = test_dir_path, require_visibility = False) # locate results = osex.locate.locate( [test_dir_path + '*file*'], database_path = database_path ) expected_results = [os.path.join(test_dir_path, p) for p in [ u'file-ä', u'file-Ö', u'file-ß', ]] assert results.sort() == expected_results.sort() def test_local_db_dirs(tmpdir): test_dir_path = tmpdir.strpath os.chdir(test_dir_path) # prepare dir open('file1', 'w').close() open('file2', 'w').close() os.makedirs(os.path.join('dir', 'subdir1')) os.makedirs(os.path.join('dir', 'subdir2')) # update db database_path = os.path.join(test_dir_path, 'db') osex.locate.update_locate_database(database_path = database_path, root_path = test_dir_path, require_visibility = False) # locate results = osex.locate.locate( [test_dir_path + '*dir*'], database_path = database_path ) assert results == [os.path.join(test_dir_path, p) for p in [ 'dir', os.path.join('dir', 'subdir1'), os.path.join('dir', 'subdir2'), ]] def test_local_db_subtree(tmpdir): test_dir_path = tmpdir.strpath os.chdir(test_dir_path) # prepare dir os.makedirs(os.path.join('dir1', 'subdir1')) os.makedirs(os.path.join('dir1', 'subdir2')) os.makedirs(os.path.join('dir2', 'subdir3')) os.makedirs(os.path.join('dir2', 'subdir4')) # update db database_path = os.path.join(test_dir_path, 'db') osex.locate.update_locate_database( database_path = database_path, root_path = os.path.join(test_dir_path, 'dir2'), require_visibility = False ) # locate results = osex.locate.locate( [test_dir_path + '*subdir*'], database_path = database_path ) assert results == [os.path.join(test_dir_path, p) for p in [ os.path.join('dir2', 'subdir3'), os.path.join('dir2', 'subdir4'), ]]