Refactor Inotify

This commit is contained in:
R. Richard 2019-06-27 17:38:53 +02:00 committed by Kristóf Tóth
parent da19769362
commit 44a1433d3b
2 changed files with 11 additions and 7 deletions

View File

@ -97,12 +97,12 @@ class InotifyObserver:
def _extract_files_from_paths(self): def _extract_files_from_paths(self):
files, paths = [], [] files, paths = [], []
for path in self._paths: for path in self._paths:
path = abspath(path)
if isdir(path): if isdir(path):
paths.append(path) paths.append(path)
else: else:
new_file = abspath(path) paths.append(dirname(path))
files.append(new_file) files.append(path)
paths.append(dirname(new_file))
self._files, self._paths = files, paths self._files, self._paths = files, paths
@property @property
@ -120,7 +120,7 @@ class InotifyObserver:
@patterns.setter @patterns.setter
def patterns(self, patterns): def patterns(self, patterns):
self._patterns = patterns self._patterns = patterns or []
self._reset() self._reset()
@property @property

View File

@ -5,7 +5,7 @@ from secrets import token_urlsafe
from pathlib import Path from pathlib import Path
from shutil import rmtree from shutil import rmtree
from os.path import join from os.path import join
from os import mkdir, rename from os import mkdir, remove, rename
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory
import watchdog import watchdog
@ -140,11 +140,15 @@ def test_delete(context):
def test_paths(context): def test_paths(context):
context.observer.paths = context.subdir context.observer.paths = context.subdir
context.create_random_folder(context.workdir) newdir = context.create_random_folder(context.workdir)
newfile = context.create_random_file(context.subdir, '.txt') newfile = context.create_random_file(context.subdir, '.txt')
context.check_event(InotifyDirModifiedEvent, context.subdir)
context.check_event(InotifyFileCreatedEvent, newfile) context.check_event(InotifyFileCreatedEvent, newfile)
context.observer.paths = context.subdir context.observer.paths = [newdir, newfile]
remove(newfile)
context.check_event(InotifyFileDeletedEvent, newfile)
assert context.check_any() assert context.check_any()
context.observer.paths = context.workdir
def test_patterns(context): def test_patterns(context):
context.observer.patterns = ['*.txt'] context.observer.patterns = ['*.txt']