Fix blockers list in rwlock error message (#3285)

This commit is contained in:
Alexander Schepanovski
2020-02-06 16:25:17 +02:00
committed by GitHub
parent 509ce3e16e
commit e28371f53a
2 changed files with 5 additions and 4 deletions
+3 -2
View File
@@ -66,10 +66,11 @@ def _infos_to_str(infos):
def _check_blockers(lock, info, *, mode, waiters):
for path_info in waiters:
blockers = [
info
blocker
for path, infos in lock[mode].items()
if path_info.overlaps(path)
if info not in (infos if type(infos) is list else [infos])
for blocker in (infos if isinstance(infos, list) else [infos])
if blocker != info
]
if not blockers:
+2 -2
View File
@@ -62,12 +62,12 @@ def test_rwlock_subdirs(tmp_path):
subfoo = PathInfo("foo/subfoo")
with rwlock(path, "cmd1", [foo], []):
with pytest.raises(LockError):
with pytest.raises(LockError, match=r"subfoo(.|\n)*cmd1"):
with rwlock(path, "cmd2", [], [subfoo]):
pass
with rwlock(path, "cmd1", [], [subfoo]):
with pytest.raises(LockError):
with pytest.raises(LockError, match=r"'foo'(.|\n)*cmd1"):
with rwlock(path, "cmd2", [foo], []):
pass