py39: PEP-514 violation in Windows Registry at HKEY_CURRENT_USER/PythonCore/3.7/InstallPath error: missing py39: PEP-514 violation in Windows Registry at HKEY_CURRENT_USER/PythonCore/3.9/InstallPath error: missing py39: skipped because could not find python interpreter with spec(s): py39 py39: SKIP ? in 0.47 seconds .pkg: _optional_hooks> python C:\Clones\ulrichb22\moin-venv-python\lib\site-packages\pyproject_api\_backend.py True setuptools.build_meta .pkg: get_requires_for_build_sdist> python C:\Clones\ulrichb22\moin-venv-python\lib\site-packages\pyproject_api\_backend.py True setuptools.build_meta .pkg: build_sdist> python C:\Clones\ulrichb22\moin-venv-python\lib\site-packages\pyproject_api\_backend.py True setuptools.build_meta py310: recreate env because dependencies removed: whoosh>=2.7.0 py310: remove tox env folder C:\Clones\ulrichb22\moin\.tox\py310 py310: install_deps> python -I -m pip install -r requirements.d/development.txt py310: install_package_deps> python -I -m pip install Babel>=2.10.0 Flask-Babel>=3.0.0 Flask-Caching>=1.2.0 Flask-Theme>=0.3.6 Flask>=3.0.0 Jinja2>=3.1.0 Markdown>=3.4.1 Werkzeug>=3.0.0 XStatic-Bootstrap==3.1.1.2 XStatic-CKEditor>=3.6.1.2 XStatic-Font-Awesome>=6.2.1.0 XStatic-JQuery.TableSorter>=2.14.5.1 XStatic-Pygments>=1.6.0.1 XStatic-autosize XStatic-jQuery-File-Upload>=10.31.0 XStatic-jQuery>=1.8.2 XStatic-svg-edit-moin>=2012.11.15.1 XStatic>=0.0.2 blinker>=1.6.2 docutils>=0.18.1 emeraldtree>=0.10.0 feedgen>=0.9.0 flatland>=0.8 markupsafe<=2.2.0 mdx_wikilink_plus>=1.4.1 passlib>=1.6.0 pdfminer.six pygments>=1.4 sqlalchemy<2.0 whoosh-reloaded>=2.7.5 py310: install_package> python -I -m pip install --force-reinstall --no-deps C:\Clones\ulrichb22\moin\.tox\.tmp\package\3\moin-2.0.0.dev1731+g71b027bc.tar.gz py310: commands[0]> pytest -rs --pyargs 2024-04-12 12:42:14,712 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\passlib\pwd.py:16: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2317: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,759 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,774 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,774 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,774 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,774 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('xstatic.pkg')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 2024-04-12 12:42:14,812 WARNING moin.log:116 C:\Clones\ulrichb22\moin\.tox\py310\lib\site-packages\pkg_resources\__init__.py:2832: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('zope')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages ============================= test session starts ============================= platform win32 -- Python 3.10.7, pytest-8.1.1, pluggy-1.4.0 cachedir: .tox\py310\.pytest_cache rootdir: C:\Clones\ulrichb22\moin configfile: pyproject.toml collected 1751 items / 2 skipped src\moin\_tests\test_error.py ...... [ 0%] src\moin\_tests\test_forms.py .. [ 0%] src\moin\_tests\test_test_environ.py .. [ 0%] src\moin\_tests\test_user.py ............... [ 1%] src\moin\_tests\test_wikiutil.py ................................... [ 3%] src\moin\apps\admin\_tests\test_admin.py ........ [ 3%] src\moin\apps\feed\_tests\test_feed.py .. [ 3%] src\moin\apps\frontend\_tests\test_frontend.py ......................... [ 5%] .......................... [ 6%] src\moin\apps\misc\_tests\test_misc.py .. [ 7%] src\moin\apps\serve\_tests\test_serve.py .. [ 7%] src\moin\auth\_tests\test_auth.py ...... [ 7%] src\moin\auth\_tests\test_http.py . [ 7%] src\moin\auth\_tests\test_log.py ... [ 7%] src\moin\cli\_tests\test_cli.py ... [ 7%] src\moin\cli\_tests\test_create_instance.py . [ 7%] src\moin\cli\_tests\test_index.py .. [ 8%] src\moin\cli\_tests\test_modify_item.py ........ [ 8%] src\moin\cli\_tests\test_scrapy_crawl.py ..xs.. [ 8%] src\moin\cli\_tests\test_serialization.py ...... [ 9%] src\moin\cli\_tests\test_set_meta.py . [ 9%] src\moin\cli\migration\moin19\macros\_tests\test_MonthCalendar_migration.py . [ 9%] ... [ 9%] src\moin\cli\migration\moin19\macros\_tests\test_PageList_migration.py . [ 9%] ...... [ 9%] src\moin\config\_tests\test_defaultconfig.py . [ 9%] src\moin\converters\_tests\test__args.py ....... [ 10%] src\moin\converters\_tests\test__args_wiki.py ...... [ 10%] src\moin\converters\_tests\test__wiki_macro.py ................. [ 11%] src\moin\converters\_tests\test_creole_in.py ........................... [ 13%] ............................................................... [ 16%] src\moin\converters\_tests\test_csv_in.py .. [ 16%] src\moin\converters\_tests\test_docbook_in.py .......................... [ 18%] ................................................... [ 21%] src\moin\converters\_tests\test_docbook_out.py ......................... [ 22%] ....... [ 23%] src\moin\converters\_tests\test_html_in.py ............................. [ 24%] ....................... [ 26%] src\moin\converters\_tests\test_html_in_out.py ......................... [ 27%] ...................... [ 28%] src\moin\converters\_tests\test_html_out.py ............................ [ 30%] ........................sx [ 31%] src\moin\converters\_tests\test_image.py ..... [ 32%] src\moin\converters\_tests\test_include.py ......... [ 32%] src\moin\converters\_tests\test_link.py ....................... [ 33%] src\moin\converters\_tests\test_markdown_in.py ......................... [ 35%] ............ [ 36%] src\moin\converters\_tests\test_markdown_in_out.py ..................... [ 37%] ................................ [ 39%] src\moin\converters\_tests\test_mediawiki_in.py ........................ [ 40%] ............... [ 41%] src\moin\converters\_tests\test_moinwiki19_in.py ....... [ 41%] src\moin\converters\_tests\test_moinwiki19_in_20_out.py .. [ 41%] src\moin\converters\_tests\test_moinwiki_in.py ......................... [ 43%] ........................................................................ [ 47%] ............................................. [ 49%] src\moin\converters\_tests\test_moinwiki_in_out.py ..................... [ 51%] ........................................................................ [ 55%] ........... [ 55%] src\moin\converters\_tests\test_moinwiki_out.py ........................ [ 57%] ............................. [ 58%] src\moin\converters\_tests\test_registry.py ............. [ 59%] src\moin\converters\_tests\test_rst_in.py .............................. [ 61%] ....................... [ 62%] src\moin\converters\_tests\test_rst_in_out.py .......................... [ 64%] ................... [ 65%] src\moin\converters\_tests\test_rst_out.py ............................. [ 66%] ............... [ 67%] src\moin\converters\_tests\test_smiley.py ........ [ 68%] src\moin\datastructures\backends\_tests\test_composite_dicts.py .... [ 68%] src\moin\datastructures\backends\_tests\test_composite_groups.py ....... [ 68%] ...... [ 69%] src\moin\datastructures\backends\_tests\test_config_dicts.py ..... [ 69%] src\moin\datastructures\backends\_tests\test_config_groups.py ......... [ 70%] src\moin\datastructures\backends\_tests\test_lazy_config_groups.py ..... [ 70%] ............. [ 71%] src\moin\datastructures\backends\_tests\test_wiki_dicts.py ..... [ 71%] src\moin\datastructures\backends\_tests\test_wiki_groups.py ............ [ 72%] . [ 72%] src\moin\i18n\_tests\test_i18n.py ..s [ 72%] src\moin\items\_tests\test_Blog.py ........ [ 72%] src\moin\items\_tests\test_Content.py .............. [ 73%] src\moin\items\_tests\test_Item.py ................ [ 74%] src\moin\macros\_tests\test_Anchor.py . [ 74%] src\moin\macros\_tests\test_Date.py .. [ 74%] src\moin\macros\_tests\test_DateTime.py . [ 74%] src\moin\macros\_tests\test_GetText.py . [ 74%] src\moin\macros\_tests\test_GetVal.py . [ 74%] src\moin\macros\_tests\test_ItemList.py .... [ 74%] src\moin\macros\_tests\test_MonthCalendar.py ........ [ 75%] src\moin\macros\_tests\test_ShowSmileys.py . [ 75%] src\moin\macros\_tests\test_Verbatim.py . [ 75%] src\moin\macros\_tests\test__base.py ..... [ 75%] src\moin\mail\_tests\test_sendmail.py ... [ 76%] src\moin\search\_tests\test_analyzers.py ... [ 76%] src\moin\security\_tests\test_security.py ....................... [ 77%] src\moin\storage\backends\_tests\test_fileserver.py .... [ 77%] src\moin\storage\backends\_tests\test_stores.py .......... [ 78%] src\moin\storage\middleware\_tests\test_indexing.py .............F...... [ 79%] .ss [ 79%] src\moin\storage\middleware\_tests\test_protecting.py .............F.... [ 80%] ....................... [ 81%] src\moin\storage\middleware\_tests\test_routing.py ..... [ 82%] src\moin\storage\middleware\_tests\test_serialization.py . [ 82%] src\moin\storage\middleware\_tests\test_validation.py .. [ 82%] src\moin\storage\stores\_tests\test_all.py ............................. [ 84%] .....................ssssssssss [ 85%] src\moin\storage\stores\_tests\test_fs.py .... [ 86%] src\moin\storage\stores\_tests\test_memory.py .... [ 86%] src\moin\storage\stores\_tests\test_sqla.py .... [ 86%] src\moin\storage\stores\_tests\test_sqlite.py ...... [ 86%] src\moin\themes\_tests\test_navi_bar.py ..... [ 87%] src\moin\utils\_tests\test_crypto.py ... [ 87%] src\moin\utils\_tests\test_diff3.py . [ 87%] src\moin\utils\_tests\test_diff_datastruct.py .................... [ 88%] src\moin\utils\_tests\test_diff_html.py .. [ 88%] src\moin\utils\_tests\test_diff_text.py . [ 88%] src\moin\utils\_tests\test_filesys.py ........ [ 89%] src\moin\utils\_tests\test_forms.py ...... [ 89%] src\moin\utils\_tests\test_interwiki.py ........ [ 89%] src\moin\utils\_tests\test_iri.py .................. [ 90%] src\moin\utils\_tests\test_mime.py ..... [ 91%] src\moin\utils\_tests\test_mimetype.py ... [ 91%] src\moin\utils\_tests\test_notifications.py ... [ 91%] src\moin\utils\_tests\test_paramparser.py .............................. [ 93%] ........................................................................ [ 97%] ....................... [ 98%] src\moin\utils\_tests\test_pysupport.py ...ss [ 99%] src\moin\utils\_tests\test_registry.py .. [ 99%] src\moin\utils\_tests\test_send_file.py . [ 99%] src\moin\utils\_tests\test_show_time.py .... [ 99%] src\moin\utils\_tests\test_subscriptions.py ..s [ 99%] src\moin\utils\_tests\test_thread_monitor.py .. [ 99%] src\moin\utils\_tests\test_tree.py .... [ 99%] src\moin\utils\_tests\test_util.py . [100%] ================================== FAILURES =================================== __________________ TestIndexingMiddleware.test_index_update ___________________ self = def test_index_update(self): # first we index some stuff the slow "on-the-fly" way: expected_all_revids = [] expected_latest_revids = [] missing_revids = [] item_name = "updated" item = self.imw[item_name] r = item.store_revision(dict(name=[item_name], mtime=1), BytesIO(b"updated 1st"), trusted=True, return_rev=True) expected_all_revids.append(r.revid) # we update this item below, so we don't add it to expected_latest_revids item_name = "destroyed" item = self.imw[item_name] r = item.store_revision( dict(name=[item_name], mtime=1), BytesIO(b"destroyed 1st"), trusted=True, return_rev=True ) destroy_revid = r.revid # we destroy this item below, so we don't add it to expected_all_revids # we destroy this item below, so we don't add it to expected_latest_revids item_name = "stayssame" item = self.imw[item_name] r = item.store_revision( dict(name=[item_name], mtime=1), BytesIO(b"stayssame 1st"), trusted=True, return_rev=True ) expected_all_revids.append(r.revid) # we update this item below, so we don't add it to expected_latest_revids r = item.store_revision( dict(name=[item_name], mtime=2), BytesIO(b"stayssame 2nd"), trusted=True, return_rev=True ) expected_all_revids.append(r.revid) expected_latest_revids.append(r.revid) dumper(self.imw, ALL_REVS) dumper(self.imw, LATEST_REVS) # now build a fresh index at tmp location: self.imw.create(tmp=True) self.imw.rebuild(tmp=True) # while the fresh index still sits at the tmp location, we update and add some items. # this will not change the fresh index, but the old index we are still using. item_name = "updated" item = self.imw[item_name] r = item.store_revision(dict(name=[item_name], mtime=2), BytesIO(b"updated 2nd"), trusted=True, return_rev=True) expected_all_revids.append(r.revid) expected_latest_revids.append(r.revid) missing_revids.append(r.revid) item_name = "added" item = self.imw[item_name] r = item.store_revision(dict(name=[item_name], mtime=1), BytesIO(b"added 1st"), trusted=True, return_rev=True) expected_all_revids.append(r.revid) expected_latest_revids.append(r.revid) missing_revids.append(r.revid) item_name = "destroyed" item = self.imw[item_name] item.destroy_revision(destroy_revid) # now switch to the not-quite-fresh-any-more index we have built: self.imw.close() > self.imw.move_index() src\moin\storage\middleware\_tests\test_indexing.py:363: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src\moin\storage\middleware\indexing.py:556: in move_index self.destroy() src\moin\storage\middleware\indexing.py:546: in destroy shutil.rmtree(index_dir) C:\Users\haase\AppData\Local\Programs\Python\Python310\lib\shutil.py:749: in rmtree return _rmtree_unsafe(path, onerror) C:\Users\haase\AppData\Local\Programs\Python\Python310\lib\shutil.py:619: in _rmtree_unsafe onerror(os.unlink, fullname, sys.exc_info()) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ path = 'C:\\Clones\\ulrichb22\\moin\\src\\moin\\_tests\\wiki\\index' onerror = .onerror at 0x0000026C50BC2E60> def _rmtree_unsafe(path, onerror): try: with os.scandir(path) as scandir_it: entries = list(scandir_it) except OSError: onerror(os.scandir, path, sys.exc_info()) entries = [] for entry in entries: fullname = entry.path if _rmtree_isdir(entry): try: if entry.is_symlink(): # This can only happen if someone replaces # a directory with a symlink after the call to # os.scandir or entry.is_dir above. raise OSError("Cannot call rmtree on a symbolic link") except OSError: onerror(os.path.islink, fullname, sys.exc_info()) continue _rmtree_unsafe(fullname, onerror) else: try: > os.unlink(fullname) E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Clones\\ulrichb22\\moin\\src\\moin\\_tests\\wiki\\index\\latest_revs_38jjy3ir7io6j5b6.seg' C:\Users\haase\AppData\Local\Programs\Python\Python310\lib\shutil.py:617: PermissionError ---------------------------- Captured stdout call ----------------------------- *** all_revs *** name ['updated'] backendname 'default' contenttype 'application/octet-stream' dataid '2075979201f446a993193f3cd6499dc4' itemid '76017df1684848609cc0ffc57ae9bedd' mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'updated' names 'updated' namespace '' revid '65b7ccf3df35405a8d3c696f8064615c' size 11 summary '' tags [] wikiname 'MoinTest' content 'Download updated.' name ['destroyed'] backendname 'default' contenttype 'application/octet-stream' dataid '00f535d5fa894e8eb8c21ba218cd2cba' itemid '553c3493c2494096a891f9c6a9f16ea8' mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'destroyed' names 'destroyed' namespace '' revid 'f682374ad7fb4ba38d71b821f97306c5' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download destroyed.' name ['stayssame'] backendname 'default' contenttype 'application/octet-stream' dataid '70c7e871010845c99247d495b0aacf6e' itemid '73ba152efb8f4d24b3abaeb7658da79f' mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'stayssame' names 'stayssame' namespace '' revid 'aaadda4897c949eca5b0d823095c0b24' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download stayssame.' name ['stayssame'] backendname 'default' contenttype 'application/octet-stream' dataid '5a7333313c8d4bdabae6415b9ff0d1b2' itemid '73ba152efb8f4d24b3abaeb7658da79f' mtime datetime.datetime(1970, 1, 1, 0, 0, 2) name_old [] name_sort 'stayssame' names 'stayssame' namespace '' revid 'c3ee4962cca8480c9c09e7c64089a84f' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download stayssame.' *** latest_revs *** name ['updated'] backendname 'default' contenttype 'application/octet-stream' dataid '2075979201f446a993193f3cd6499dc4' itemid '76017df1684848609cc0ffc57ae9bedd' itemlinks [] itemtransclusions [] mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'updated' names 'updated' namespace '' revid '65b7ccf3df35405a8d3c696f8064615c' size 11 summary '' tags [] wikiname 'MoinTest' content 'Download updated.' name ['destroyed'] backendname 'default' contenttype 'application/octet-stream' dataid '00f535d5fa894e8eb8c21ba218cd2cba' itemid '553c3493c2494096a891f9c6a9f16ea8' itemlinks [] itemtransclusions [] mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'destroyed' names 'destroyed' namespace '' revid 'f682374ad7fb4ba38d71b821f97306c5' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download destroyed.' name ['stayssame'] backendname 'default' contenttype 'application/octet-stream' dataid '5a7333313c8d4bdabae6415b9ff0d1b2' itemid '73ba152efb8f4d24b3abaeb7658da79f' itemlinks [] itemtransclusions [] mtime datetime.datetime(1970, 1, 1, 0, 0, 2) name_old [] name_sort 'stayssame' names 'stayssame' namespace '' revid 'c3ee4962cca8480c9c09e7c64089a84f' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download stayssame.' __________________ TestIndexingMiddleware.test_index_update ___________________ self = def test_index_update(self): # first we index some stuff the slow "on-the-fly" way: expected_all_revids = [] expected_latest_revids = [] missing_revids = [] item_name = "updated" item = self.imw[item_name] r = item.store_revision(dict(name=[item_name], mtime=1), BytesIO(b"updated 1st"), trusted=True, return_rev=True) expected_all_revids.append(r.revid) # we update this item below, so we don't add it to expected_latest_revids item_name = "destroyed" item = self.imw[item_name] r = item.store_revision( dict(name=[item_name], mtime=1), BytesIO(b"destroyed 1st"), trusted=True, return_rev=True ) destroy_revid = r.revid # we destroy this item below, so we don't add it to expected_all_revids # we destroy this item below, so we don't add it to expected_latest_revids item_name = "stayssame" item = self.imw[item_name] r = item.store_revision( dict(name=[item_name], mtime=1), BytesIO(b"stayssame 1st"), trusted=True, return_rev=True ) expected_all_revids.append(r.revid) # we update this item below, so we don't add it to expected_latest_revids r = item.store_revision( dict(name=[item_name], mtime=2), BytesIO(b"stayssame 2nd"), trusted=True, return_rev=True ) expected_all_revids.append(r.revid) expected_latest_revids.append(r.revid) dumper(self.imw, ALL_REVS) dumper(self.imw, LATEST_REVS) # now build a fresh index at tmp location: self.imw.create(tmp=True) self.imw.rebuild(tmp=True) # while the fresh index still sits at the tmp location, we update and add some items. # this will not change the fresh index, but the old index we are still using. item_name = "updated" item = self.imw[item_name] r = item.store_revision(dict(name=[item_name], mtime=2), BytesIO(b"updated 2nd"), trusted=True, return_rev=True) expected_all_revids.append(r.revid) expected_latest_revids.append(r.revid) missing_revids.append(r.revid) item_name = "added" item = self.imw[item_name] r = item.store_revision(dict(name=[item_name], mtime=1), BytesIO(b"added 1st"), trusted=True, return_rev=True) expected_all_revids.append(r.revid) expected_latest_revids.append(r.revid) missing_revids.append(r.revid) item_name = "destroyed" item = self.imw[item_name] item.destroy_revision(destroy_revid) # now switch to the not-quite-fresh-any-more index we have built: self.imw.close() > self.imw.move_index() src\moin\storage\middleware\_tests\test_indexing.py:363: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src\moin\storage\middleware\indexing.py:556: in move_index self.destroy() src\moin\storage\middleware\indexing.py:546: in destroy shutil.rmtree(index_dir) C:\Users\haase\AppData\Local\Programs\Python\Python310\lib\shutil.py:749: in rmtree return _rmtree_unsafe(path, onerror) C:\Users\haase\AppData\Local\Programs\Python\Python310\lib\shutil.py:619: in _rmtree_unsafe onerror(os.unlink, fullname, sys.exc_info()) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ path = 'C:\\Clones\\ulrichb22\\moin\\src\\moin\\_tests\\wiki\\index' onerror = .onerror at 0x0000026C527A1F30> def _rmtree_unsafe(path, onerror): try: with os.scandir(path) as scandir_it: entries = list(scandir_it) except OSError: onerror(os.scandir, path, sys.exc_info()) entries = [] for entry in entries: fullname = entry.path if _rmtree_isdir(entry): try: if entry.is_symlink(): # This can only happen if someone replaces # a directory with a symlink after the call to # os.scandir or entry.is_dir above. raise OSError("Cannot call rmtree on a symbolic link") except OSError: onerror(os.path.islink, fullname, sys.exc_info()) continue _rmtree_unsafe(fullname, onerror) else: try: > os.unlink(fullname) E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Clones\\ulrichb22\\moin\\src\\moin\\_tests\\wiki\\index\\latest_revs_a0z32kbqf1f41rng.seg' C:\Users\haase\AppData\Local\Programs\Python\Python310\lib\shutil.py:617: PermissionError ---------------------------- Captured stdout call ----------------------------- *** all_revs *** name ['updated'] backendname 'default' contenttype 'application/octet-stream' dataid '1cbf73bb93ce40519f1da361492ada87' itemid '11408fc66e3846369ac614262df7ff40' mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'updated' names 'updated' namespace '' revid 'd2fe1972f99c45df906c7e00f6274518' size 11 summary '' tags [] wikiname 'MoinTest' content 'Download updated.' name ['destroyed'] backendname 'default' contenttype 'application/octet-stream' dataid '511877c65750416fa32cb7c6bed5ba52' itemid '9751b4954d9a48078a8ddc9bfca2a65d' mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'destroyed' names 'destroyed' namespace '' revid 'ac7e8ef0e28a4ffcab75c89f3946a2aa' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download destroyed.' name ['stayssame'] backendname 'default' contenttype 'application/octet-stream' dataid '23dde6dd411944669bf167c0a2dace8a' itemid 'b9516716b3224c7999391e4a8a20d6d4' mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'stayssame' names 'stayssame' namespace '' revid '0333719f5ee8487f92398c0a3c49b84c' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download stayssame.' name ['stayssame'] backendname 'default' contenttype 'application/octet-stream' dataid '47ff535322dd4ed2b07a287ac243b9f4' itemid 'b9516716b3224c7999391e4a8a20d6d4' mtime datetime.datetime(1970, 1, 1, 0, 0, 2) name_old [] name_sort 'stayssame' names 'stayssame' namespace '' revid 'e785acee01aa4ac288eec23375a15e45' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download stayssame.' *** latest_revs *** name ['updated'] backendname 'default' contenttype 'application/octet-stream' dataid '1cbf73bb93ce40519f1da361492ada87' itemid '11408fc66e3846369ac614262df7ff40' itemlinks [] itemtransclusions [] mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'updated' names 'updated' namespace '' revid 'd2fe1972f99c45df906c7e00f6274518' size 11 summary '' tags [] wikiname 'MoinTest' content 'Download updated.' name ['destroyed'] backendname 'default' contenttype 'application/octet-stream' dataid '511877c65750416fa32cb7c6bed5ba52' itemid '9751b4954d9a48078a8ddc9bfca2a65d' itemlinks [] itemtransclusions [] mtime datetime.datetime(1970, 1, 1, 0, 0, 1) name_old [] name_sort 'destroyed' names 'destroyed' namespace '' revid 'ac7e8ef0e28a4ffcab75c89f3946a2aa' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download destroyed.' name ['stayssame'] backendname 'default' contenttype 'application/octet-stream' dataid '47ff535322dd4ed2b07a287ac243b9f4' itemid 'b9516716b3224c7999391e4a8a20d6d4' itemlinks [] itemtransclusions [] mtime datetime.datetime(1970, 1, 1, 0, 0, 2) name_old [] name_sort 'stayssame' names 'stayssame' namespace '' revid 'e785acee01aa4ac288eec23375a15e45' size 13 summary '' tags [] wikiname 'MoinTest' content 'Download stayssame.' ============================== warnings summary =============================== src/moin/storage/stores/_tests/test_all.py::test_getitem_raises[sqla/BytesStore] C:\Clones\ulrichb22\moin\src\moin\storage\stores\sqla.py:83: RemovedIn20Warning: Deprecated API features detected! These feature(s) are not compatible with SQLAlchemy 2.0. To prevent incompatible upgrades prior to updating applications, ensure requirements files are pinned to "sqlalchemy<2.0". Set environment variable SQLALCHEMY_WARN_20=1 to show all deprecation warnings. Set environment variable SQLALCHEMY_SILENCE_UBER_WARNING=1 to silence this message. (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9) self.table.create() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info =========================== SKIPPED [1] _ui_tests\utils.py:12: could not import 'selenium': No module named 'selenium' SKIPPED [1] src\moin\auth\_tests\test_ldap_login.py:23: could not import 'ldap': No module named 'ldap' SKIPPED [1] src\moin\cli\_tests\test_scrapy_crawl.py:97: unconditional skip SKIPPED [1] src\moin\converters\_tests\test_html_out.py:327: this test requires footnote plugin SKIPPED [1] src\moin\i18n\_tests\test_i18n.py:43: This test needs to be run with --assert=reinterp or --assert=plain flag SKIPPED [1] src\moin\storage\middleware\_tests\test_indexing.py:515: usually we do no performance tests SKIPPED [1] src\moin\storage\middleware\_tests\test_indexing.py:524: usually we do no performance tests SKIPPED [10] src\moin\storage\stores\_tests\test_all.py:56: usually we do no performance tests SKIPPED [1] src\moin\utils\_tests\test_pysupport.py:71: Missing or wrong permissions: C:\Clones\ulrichb22\moin\src\moin\_tests\wiki\data\plugin\parser SKIPPED [1] src\moin\utils\_tests\test_pysupport.py:83: Missing or wrong permissions: C:\Clones\ulrichb22\moin\src\moin\_tests\wiki\data\plugin\parser SKIPPED [1] src\moin\utils\_tests\test_subscriptions.py:107: usually we do no performance tests = 2 failed, 1729 passed, 20 skipped, 2 xfailed, 1 warning in 893.92s (0:14:53) = py310: exit 1 (896.28 seconds) C:\Clones\ulrichb22\moin> pytest -rs --pyargs pid=13748 py310: FAIL ! in 18 minutes 20.3 seconds py311: PEP-514 violation in Windows Registry at HKEY_CURRENT_USER/PythonCore/3.7/InstallPath error: missing py311: PEP-514 violation in Windows Registry at HKEY_CURRENT_USER/PythonCore/3.9/InstallPath error: missing py311: skipped because could not find python interpreter with spec(s): py311 py311: SKIP ? in 0.05 seconds py312: PEP-514 violation in Windows Registry at HKEY_CURRENT_USER/PythonCore/3.7/InstallPath error: missing py312: PEP-514 violation in Windows Registry at HKEY_CURRENT_USER/PythonCore/3.9/InstallPath error: missing py312: skipped because could not find python interpreter with spec(s): py312 .pkg: _exit> python C:\Clones\ulrichb22\moin-venv-python\lib\site-packages\pyproject_api\_backend.py True setuptools.build_meta py312: SKIP ? in 0.14 seconds ruff: commands[0]> ruff check . All checks passed! py39: SKIP (0.47 seconds) py310: FAIL code 1 (1100.30=setup[204.02]+cmd[896.28] seconds) py311: SKIP (0.03 seconds) py312: SKIP (0.14 seconds) ruff: OK (0.33=setup[0.03]+cmd[0.30] seconds) evaluation failed :( (1101.94 seconds)