2.6.3: pytest is failing in `tests/test_watcher.py::TestWatcher::test_watch_multiple_dirs` unit
还没有人认领这个 Issue。
评估
调研方向
Start by reproducing tests/test_watcher.py::TestWatcher::test_watch_multiple_dirs with the reported pytest command, then read the Watcher implementation exercised by that test. Trace why a modification to the first watched directory is missed after the second directory is added; done when the targeted test passes without breaking the other watcher tests.
由索引模型根据 Issue 内容生成。
描述
I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.
python3 -sBm build -w --no-isolation- because I'm calling
buildwith--no-isolationI'm using during all processes only locally installed modules - install .whl file in </install/prefix>
- run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
- build is performed in env which is
cut off from access to the public network(pytest is executed with-m "not network")
Here is pytest output:
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-livereload-2.6.3-9.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-livereload-2.6.3-9.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -m 'not network'
============================= test session starts ==============================
platform linux -- Python 3.8.16, pytest-7.2.2, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/python-livereload-2.6.3
collected 5 items
tests/test_watcher.py ....F [100%]
=================================== FAILURES ===================================
_____________________ TestWatcher.test_watch_multiple_dirs _____________________
self = <tests.test_watcher.TestWatcher testMethod=test_watch_multiple_dirs>
def test_watch_multiple_dirs(self):
first_dir = os.path.join(tmpdir, 'first')
second_dir = os.path.join(tmpdir, 'second')
watcher = Watcher()
os.mkdir(first_dir)
watcher.watch(first_dir)
assert watcher.examine() == (None, None)
first_path = os.path.join(first_dir, 'foo')
with open(first_path, 'w') as f:
f.write('')
assert watcher.examine() == (first_path, None)
assert watcher.examine() == (None, None)
os.mkdir(second_dir)
watcher.watch(second_dir)
assert watcher.examine() == (None, None)
second_path = os.path.join(second_dir, 'bar')
with open(second_path, 'w') as f:
f.write('')
assert watcher.examine() == (second_path, None)
assert watcher.examine() == (None, None)
with open(first_path, 'a') as f:
f.write('foo')
> assert watcher.examine() == (first_path, None)
E AssertionError: assert (None, None) == ('/home/tkloc...st/foo', None)
E At index 0 diff: None != '/home/tkloczko/rpmbuild/BUILD/python-livereload-2.6.3/tests/tmp/first/foo'
E Use -v to get more diff
tests/test_watcher.py:147: AssertionError
=========================== short test summary info ============================
FAILED tests/test_watcher.py::TestWatcher::test_watch_multiple_dirs - Asserti...
========================= 1 failed, 4 passed in 3.16s ==========================
Here is list of installed modules in build env
Package Version
----------------------------- -----------------
alabaster 0.7.13
attrs 22.2.0
Babel 2.12.1
build 0.10.0
charset-normalizer 3.1.0
distro 1.8.0
docutils 0.19
exceptiongroup 1.0.0
gpg 1.18.0-unknown
idna 3.4
imagesize 1.4.1
importlib-metadata 6.1.0
iniconfig 2.0.0
Jinja2 3.1.2
libcomps 0.1.19
MarkupSafe 2.1.2
packaging 23.0
pip 23.0.1
pluggy 1.0.0
Pygments 2.14.0
pyproject_hooks 1.0.0
pytest 7.2.2
python-dateutil 2.8.2
pytz 2023.2
requests 2.28.2
rpm 4.17.0
setuptools 65.6.3
six 1.16.0
snowballstemmer 2.2.0
Sphinx 6.1.3
sphinxcontrib-applehelp 1.0.4
sphinxcontrib-devhelp 1.0.2.dev20230202
sphinxcontrib-htmlhelp 2.0.0
sphinxcontrib-jsmath 1.0.1.dev20230128
sphinxcontrib-qthelp 1.0.3.dev20230128
sphinxcontrib-serializinghtml 1.1.5
tomli 2.0.1
tornado 6.2
urllib3 1.26.15
wheel 0.38.4
zipp 3.15.0
- 主要语言
- Python
- 星标
- 1.1k
- 派生
- 148
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
lepture/python-livereload 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 70/100
lepture/python-livereload#159 · 3 个 reaction ·
-
难度 4/5 3-5 天 新手友好度 35/100
lepture/python-livereload#288 ·
-
难度 3/5 1-2 天 新手友好度 38/100
lepture/python-livereload#283 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 25/100
lepture/python-livereload#282 ·
-
难度 4/5 3-5 天 新手友好度 25/100
lepture/python-livereload#279 ·
查看 lepture/python-livereload 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 85/100
MystenLabs/MemWal#1163 · 2 条评论 ·
维护者通常 1 天内回复
-
infertopics leaves new nodes without a topic when untopiced neighbours outnumber topiced ones可能已有人在做 @moneebullah25 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 62/100
ClanGenOfficial/clangen#6254 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
FinanceFlash/unvibecode#218 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复