mirror of
https://github.com/novoid/filetags.git
synced 2026-02-16 14:04:14 +00:00
Skip directory emptiness check for known tagtrees directories #55
This commit is contained in:
parent
ca87aaf067
commit
29555f4b77
2 changed files with 72 additions and 4 deletions
|
|
@ -2010,7 +2010,9 @@ def assert_empty_tagfilter_directory(directory):
|
|||
@param directory: the directory to use as starting directory
|
||||
"""
|
||||
|
||||
if options.tagtrees_directory and os.path.isdir(directory) and os.listdir(directory):
|
||||
id = os.path.join(directory, '.filetags_tagtrees')
|
||||
|
||||
if not os.path.exists(id) and options.tagtrees_directory and os.path.exists(directory) and os.listdir(directory):
|
||||
error_exit(13, 'The given tagtrees directory ' + directory +
|
||||
' is not empty. Aborting here instead ' +
|
||||
'of removing its content without asking. Please free it up yourself and try again.')
|
||||
|
|
@ -2027,6 +2029,10 @@ def assert_empty_tagfilter_directory(directory):
|
|||
shutil.rmtree(directory)
|
||||
logging.debug('re-creating tagfilter directory "%s" ...' % str(directory))
|
||||
os.makedirs(directory)
|
||||
|
||||
with open(id, 'w'):
|
||||
pass
|
||||
|
||||
if not options.dryrun:
|
||||
assert(os.path.isdir(directory))
|
||||
|
||||
|
|
|
|||
|
|
@ -755,7 +755,7 @@ class TestHierarchyWithFilesAndFolders(unittest.TestCase):
|
|||
link_missing_mutual_tagged_items=False,
|
||||
filtertags=None)
|
||||
|
||||
self.assertEqual(len(os.listdir(self.subdir2)), 4) # 4 entries in this directory
|
||||
self.assertEqual(len(os.listdir(self.subdir2)), 5) # 5 entries in this directory
|
||||
|
||||
self.assertTrue(os.path.isdir(os.path.join(self.subdir2, 'bar')))
|
||||
self.assertEqual(set(os.listdir(os.path.join(self.subdir2, 'bar'))),
|
||||
|
|
@ -781,7 +781,7 @@ class TestHierarchyWithFilesAndFolders(unittest.TestCase):
|
|||
link_missing_mutual_tagged_items=False,
|
||||
filtertags=['teststring1'])
|
||||
|
||||
self.assertEqual(len(os.listdir(self.subdir2)), 3) # 3 entries in this directory
|
||||
self.assertEqual(len(os.listdir(self.subdir2)), 4) # 4 entries in this directory
|
||||
|
||||
self.assertFalse(os.path.isdir(os.path.join(self.subdir2, 'bar')))
|
||||
|
||||
|
|
@ -806,7 +806,7 @@ class TestHierarchyWithFilesAndFolders(unittest.TestCase):
|
|||
filtertags=['teststring1', 'baz'])
|
||||
|
||||
self.assertEqual(set(os.listdir(self.subdir2)),
|
||||
set(['teststring1', 'baz', 'nontagged_items']))
|
||||
set(['.filetags_tagtrees', 'teststring1', 'baz', 'nontagged_items']))
|
||||
|
||||
self.assertFalse(os.path.isdir(os.path.join(self.subdir2, 'bar')))
|
||||
|
||||
|
|
@ -819,6 +819,68 @@ class TestHierarchyWithFilesAndFolders(unittest.TestCase):
|
|||
self.assertTrue(os.path.isdir(os.path.join(self.subdir2, 'nontagged_items')))
|
||||
|
||||
|
||||
def test_tagtrees_overwrites_old_default_directory(self):
|
||||
|
||||
with open(os.path.join(self.subdir2, 'boring tagtrees data.txt'), 'w'):
|
||||
pass
|
||||
|
||||
filetags.generate_tagtrees(directory=self.subdir2,
|
||||
maxdepth=5,
|
||||
ignore_nontagged=False,
|
||||
nontagged_subdir='nontagged_items',
|
||||
link_missing_mutual_tagged_items=False,
|
||||
filtertags=None)
|
||||
|
||||
|
||||
def test_tagtrees_overwrites_known_tagtrees(self):
|
||||
|
||||
filetags.options.tagtrees_directory = self.subdir2
|
||||
|
||||
with open(os.path.join(self.subdir2, '.filetags_tagtrees'), 'w'):
|
||||
pass
|
||||
|
||||
filetags.generate_tagtrees(directory=self.subdir2,
|
||||
maxdepth=5,
|
||||
ignore_nontagged=False,
|
||||
nontagged_subdir='nontagged_items',
|
||||
link_missing_mutual_tagged_items=False,
|
||||
filtertags=None)
|
||||
|
||||
filetags.options.tagtrees_directory = None
|
||||
|
||||
|
||||
def test_tagtrees_overwrites_nonempty_foreign_directory(self):
|
||||
|
||||
filetags.options.tagtrees_directory = self.subdir2
|
||||
|
||||
with open(os.path.join(self.subdir2, 'critical data.txt'), 'w'):
|
||||
pass
|
||||
|
||||
with self.assertRaises(SystemExit):
|
||||
filetags.generate_tagtrees(directory=self.subdir2,
|
||||
maxdepth=5,
|
||||
ignore_nontagged=False,
|
||||
nontagged_subdir='nontagged_items',
|
||||
link_missing_mutual_tagged_items=False,
|
||||
filtertags=None)
|
||||
|
||||
filetags.options.tagtrees_directory = None
|
||||
|
||||
|
||||
def test_tagtrees_overwrites_empty_foreign_directory(self):
|
||||
|
||||
filetags.options.tagtrees_directory = self.subdir2
|
||||
|
||||
filetags.generate_tagtrees(directory=self.subdir2,
|
||||
maxdepth=5,
|
||||
ignore_nontagged=False,
|
||||
nontagged_subdir='nontagged_items',
|
||||
link_missing_mutual_tagged_items=False,
|
||||
filtertags=None)
|
||||
|
||||
filetags.options.tagtrees_directory = None
|
||||
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
if platform.system() != 'Windows':
|
||||
|
|
|
|||
Loading…
Reference in a new issue