problematic tests
When running tests locally on my machine using tox, I get quite some failures:
======================================================================= ERRORS ========================================================================
___________________________________________________ ERROR at setup of TestSiteCrawl.test_home_page ____________________________________________________
request = <SubRequest 'crawl_results' for <Function test_home_page>>
artifact_dir = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli')
@pytest.fixture(scope="package")
def crawl_results(request, artifact_dir) -> List[CrawlResult]:
_, artifact_base_dir = get_dirs('')
crawl_success = True
if settings.DO_CRAWL:
> crawl_success = request.getfixturevalue('do_crawl')
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/conftest.py:200:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
request = <SubRequest 'do_crawl' for <Function test_home_page>>
artifact_dir = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli')
@pytest.fixture(scope="package")
def do_crawl(request, artifact_dir):
moin_dir, artifact_base_dir = get_dirs('')
# initialize output files
with open(get_crawl_log_path(), 'w'):
pass
with open(get_crawl_csv_path(), 'w'):
pass
server_started = True
crawl_success = True
if settings.SITE_HOST == '127.0.0.1:9080':
server_started = request.getfixturevalue('server')
if not server_started:
crawl_success = False
if server_started:
logging.info('starting crawl')
> os.chdir(moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'scrapy')
E FileNotFoundError: [Errno 2] No such file or directory: '/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/scrapy'
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/conftest.py:175: FileNotFoundError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------
INFO moin.cli._tests:__init__.py:36 running ['moin', 'run', '-p', '9080']
INFO moin.cli._tests.conftest:conftest.py:174 starting crawl
______________________________________________________ ERROR at setup of TestSiteCrawl.test_200 _______________________________________________________
request = <SubRequest 'crawl_results' for <Function test_home_page>>
artifact_dir = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli')
@pytest.fixture(scope="package")
def crawl_results(request, artifact_dir) -> List[CrawlResult]:
_, artifact_base_dir = get_dirs('')
crawl_success = True
if settings.DO_CRAWL:
> crawl_success = request.getfixturevalue('do_crawl')
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/conftest.py:200:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
request = <SubRequest 'do_crawl' for <Function test_home_page>>
artifact_dir = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli')
@pytest.fixture(scope="package")
def do_crawl(request, artifact_dir):
moin_dir, artifact_base_dir = get_dirs('')
# initialize output files
with open(get_crawl_log_path(), 'w'):
pass
with open(get_crawl_csv_path(), 'w'):
pass
server_started = True
crawl_success = True
if settings.SITE_HOST == '127.0.0.1:9080':
server_started = request.getfixturevalue('server')
if not server_started:
crawl_success = False
if server_started:
logging.info('starting crawl')
> os.chdir(moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'scrapy')
E FileNotFoundError: [Errno 2] No such file or directory: '/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/scrapy'
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/conftest.py:175: FileNotFoundError
_________________________________________________ ERROR at setup of TestSiteCrawl.test_valid_request __________________________________________________
request = <SubRequest 'crawl_results' for <Function test_home_page>>
artifact_dir = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli')
@pytest.fixture(scope="package")
def crawl_results(request, artifact_dir) -> List[CrawlResult]:
_, artifact_base_dir = get_dirs('')
crawl_success = True
if settings.DO_CRAWL:
> crawl_success = request.getfixturevalue('do_crawl')
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/conftest.py:200:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
request = <SubRequest 'do_crawl' for <Function test_home_page>>
artifact_dir = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli')
@pytest.fixture(scope="package")
def do_crawl(request, artifact_dir):
moin_dir, artifact_base_dir = get_dirs('')
# initialize output files
with open(get_crawl_log_path(), 'w'):
pass
with open(get_crawl_csv_path(), 'w'):
pass
server_started = True
crawl_success = True
if settings.SITE_HOST == '127.0.0.1:9080':
server_started = request.getfixturevalue('server')
if not server_started:
crawl_success = False
if server_started:
logging.info('starting crawl')
> os.chdir(moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'scrapy')
E FileNotFoundError: [Errno 2] No such file or directory: '/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/scrapy'
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/conftest.py:175: FileNotFoundError
___________________________________________________ ERROR at setup of TestSiteCrawl.test_server_log ___________________________________________________
request = <SubRequest 'crawl_results' for <Function test_home_page>>
artifact_dir = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli')
@pytest.fixture(scope="package")
def crawl_results(request, artifact_dir) -> List[CrawlResult]:
_, artifact_base_dir = get_dirs('')
crawl_success = True
if settings.DO_CRAWL:
> crawl_success = request.getfixturevalue('do_crawl')
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/conftest.py:200:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
request = <SubRequest 'do_crawl' for <Function test_home_page>>
artifact_dir = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli')
@pytest.fixture(scope="package")
def do_crawl(request, artifact_dir):
moin_dir, artifact_base_dir = get_dirs('')
# initialize output files
with open(get_crawl_log_path(), 'w'):
pass
with open(get_crawl_csv_path(), 'w'):
pass
server_started = True
crawl_success = True
if settings.SITE_HOST == '127.0.0.1:9080':
server_started = request.getfixturevalue('server')
if not server_started:
crawl_success = False
if server_started:
logging.info('starting crawl')
> os.chdir(moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'scrapy')
E FileNotFoundError: [Errno 2] No such file or directory: '/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/scrapy'
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/conftest.py:175: FileNotFoundError
====================================================================== FAILURES =======================================================================
___________________________________________________________________ test_dump_help ____________________________________________________________________
load_help = (CompletedProcess(args=['moin', 'load-help', '-n', 'help-common'], returncode=0, stdout=b'Item loaded: logo.svg\nItem ...cessfully with 30 items\n', stderr=b'2024-04-04 20:19:26,661 INFO moin.cli.maint.modify_item:166 Load help started\n'))
def test_dump_help(load_help):
moin_dir, artifact_dir = get_dirs('cli')
help_dir = Path('my_help')
source_help_dir = moin_dir / 'src' / 'moin' / 'help'
> with open(source_help_dir / 'help-en' / 'Home.data', newline='') as f:
E FileNotFoundError: [Errno 2] No such file or directory: '/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/help/help-en/Home.data'
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/test_modify_item.py:43: FileNotFoundError
____________________________________________________________________ test_item_get ____________________________________________________________________
load_help = (CompletedProcess(args=['moin', 'load-help', '-n', 'help-common'], returncode=0, stdout=b'Item loaded: logo.svg\nItem ...cessfully with 30 items\n', stderr=b'2024-04-04 20:19:26,661 INFO moin.cli.maint.modify_item:166 Load help started\n'))
def test_item_get(load_help):
"""extract an item from help and validate data and meta match original files in moin/help"""
item_get = run(['moin', 'item-get', '-n', 'help-common/cat.jpg', '-m', 'cat.meta', '-d', 'cat.data'])
assert_p_succcess(item_get)
assert Path('cat.data').exists()
assert Path('cat.meta').exists()
moin_dir, _ = get_dirs('cli')
with open('cat.meta') as f:
meta_cat = json.load(f)
> with open(moin_dir / 'src' / 'moin' / 'help' / 'help-common' / 'cat.jpg.meta') as f:
E FileNotFoundError: [Errno 2] No such file or directory: '/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/help/help-common/cat.jpg.meta'
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/test_modify_item.py:78: FileNotFoundError
------------------------------------------------------------------ Captured log call ------------------------------------------------------------------
INFO moin.cli._tests:__init__.py:36 running ['moin', 'item-get', '-n', 'help-common/cat.jpg', '-m', 'cat.meta', '-d', 'cat.data']
____________________________________________________________________ test_item_put ____________________________________________________________________
index_create2 = CompletedProcess(args=['moin', 'index-create'], returncode=0, stdout=b'', stderr=b'2024-04-04 20:19:32,458 INFO moin.cli.maint.index:51 Index creation started\n2024-04-04 20:19:32,461 INFO moin.cli.maint.index:55 Index creation finished\n')
def test_item_put(index_create2):
"""validate ability to add a new item to the wiki via item-put and extract using item-get
include an item with non-ascii characters in name, tags and summary
check for ability to handle non-ascii characters in index-dump"""
for page in ['Home', 'help-common/Home', 'MyRussianPage']:
page_filename = page.replace('/', '-')
item_get_fail = run(['moin', 'item-get', '-n', page, '-m', f'{page_filename}.meta', '-d', f'{page_filename}.data'])
assert item_get_fail.returncode != 0
moin_dir, _ = get_dirs('')
data_dir = moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'data'
item_put = run(['moin', 'item-put', '-m', data_dir / f'{page_filename}.meta', '-d', data_dir / f'{page_filename}.data'])
> assert_p_succcess(item_put)
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/test_modify_item.py:101:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
p = CompletedProcess(args=['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_t...rno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta\'\n')
def assert_p_succcess(p: subprocess.CompletedProcess):
"""assert returncode 0 and print logs on error"""
try:
> assert p.returncode == 0
E AssertionError
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/__init__.py:57: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------
INFO moin.cli._tests.conftest:conftest.py:63 artifact_dir = /Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli2
INFO moin.cli._tests:__init__.py:36 running ['moin', 'create-instance']
INFO moin.cli._tests:__init__.py:36 running ['moin', 'index-create']
---------------------------------------------------------------- Captured stderr call -----------------------------------------------------------------
2024-04-04 20:19:33,010 ERROR moin.cli._tests:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.data')] stdout = b'' stderr = b'2024-04-04 20:19:32,979 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta\'\n'
------------------------------------------------------------------ Captured log call ------------------------------------------------------------------
INFO moin.cli._tests:__init__.py:36 running ['moin', 'item-get', '-n', 'Home', '-m', 'Home.meta', '-d', 'Home.data']
INFO moin.cli._tests:__init__.py:36 running ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.data')]
ERROR moin.cli._tests:__init__.py:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.data')] stdout = b'' stderr = b'2024-04-04 20:19:32,979 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta\'\n'
____________________________________________________________________ test_item_rev ____________________________________________________________________
index_create2 = CompletedProcess(args=['moin', 'index-create'], returncode=0, stdout=b'', stderr=b'2024-04-04 20:19:33,522 INFO moin.cli.maint.index:51 Index creation started\n2024-04-04 20:19:33,525 INFO moin.cli.maint.index:55 Index creation finished\n')
def test_item_rev(index_create2):
"""test loading multiple versions of same page
validate -o option when present, revid in meta file is retained otherwise new revid is generated
validate handling of newline at end of file
* MyPage-v1 does not have newline at end in storage (size = 16)
* MyPage-v2 has newline at end in storage (size = 18)
* in both cases, item-get will write file with \n at end of file"""
moin_dir, _ = get_dirs('cli2')
data_dir = moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'data'
put1 = run(['moin', 'item-put', '-m', data_dir / 'MyPage-v1.meta', '-d', data_dir / 'MyPage-v1.data', '-o'])
> assert_p_succcess(put1)
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/test_modify_item.py:126:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
p = CompletedProcess(args=['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_t...] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta\'\n')
def assert_p_succcess(p: subprocess.CompletedProcess):
"""assert returncode 0 and print logs on error"""
try:
> assert p.returncode == 0
E AssertionError
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/__init__.py:57: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------
INFO moin.cli._tests.conftest:conftest.py:63 artifact_dir = /Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli2
INFO moin.cli._tests:__init__.py:36 running ['moin', 'create-instance']
INFO moin.cli._tests:__init__.py:36 running ['moin', 'index-create']
---------------------------------------------------------------- Captured stderr call -----------------------------------------------------------------
2024-04-04 20:19:33,813 ERROR moin.cli._tests:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:33,783 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta\'\n'
------------------------------------------------------------------ Captured log call ------------------------------------------------------------------
INFO moin.cli._tests:__init__.py:36 running ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.data'), '-o']
ERROR moin.cli._tests:__init__.py:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:33,783 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta\'\n'
_______________________________________________________________ test_validate_metadata ________________________________________________________________
index_create2 = CompletedProcess(args=['moin', 'index-create'], returncode=0, stdout=b'', stderr=b'2024-04-04 20:19:34,325 INFO moin.cli.maint.index:51 Index creation started\n2024-04-04 20:19:34,328 INFO moin.cli.maint.index:55 Index creation finished\n')
def test_validate_metadata(index_create2):
moin_dir, _ = get_dirs('')
data_dir = moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'data'
item_put = run(['moin', 'item-put', '-m', data_dir / 'MyPage-v1.meta', '-d', data_dir / 'MyPage-v1.data', '-o'])
> assert_p_succcess(item_put)
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/test_modify_item.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
p = CompletedProcess(args=['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_t...] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta\'\n')
def assert_p_succcess(p: subprocess.CompletedProcess):
"""assert returncode 0 and print logs on error"""
try:
> assert p.returncode == 0
E AssertionError
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/__init__.py:57: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------
INFO moin.cli._tests.conftest:conftest.py:63 artifact_dir = /Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli2
INFO moin.cli._tests:__init__.py:36 running ['moin', 'create-instance']
INFO moin.cli._tests:__init__.py:36 running ['moin', 'index-create']
---------------------------------------------------------------- Captured stderr call -----------------------------------------------------------------
2024-04-04 20:19:34,616 ERROR moin.cli._tests:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:34,586 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta\'\n'
------------------------------------------------------------------ Captured log call ------------------------------------------------------------------
INFO moin.cli._tests:__init__.py:36 running ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.data'), '-o']
ERROR moin.cli._tests:__init__.py:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:34,586 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.meta\'\n'
_______________________________________________________ test_validate_metadata_missing_rev_num ________________________________________________________
index_create2 = CompletedProcess(args=['moin', 'index-create'], returncode=0, stdout=b'', stderr=b'2024-04-04 20:19:35,132 INFO moin.cli.maint.index:51 Index creation started\n2024-04-04 20:19:35,135 INFO moin.cli.maint.index:55 Index creation finished\n')
def test_validate_metadata_missing_rev_num(index_create2):
moin_dir, _ = get_dirs('')
data_dir = moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'data'
item_put = run(['moin', 'item-put', '-m', data_dir / 'MyPage-vblank.meta', '-d', data_dir / 'MyPage-v1.data', '-o'])
> assert_p_succcess(item_put)
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/test_modify_item.py:245:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
p = CompletedProcess(args=['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_t... such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-vblank.meta\'\n')
def assert_p_succcess(p: subprocess.CompletedProcess):
"""assert returncode 0 and print logs on error"""
try:
> assert p.returncode == 0
E AssertionError
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/__init__.py:57: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------
INFO moin.cli._tests.conftest:conftest.py:63 artifact_dir = /Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli2
INFO moin.cli._tests:__init__.py:36 running ['moin', 'create-instance']
INFO moin.cli._tests:__init__.py:36 running ['moin', 'index-create']
---------------------------------------------------------------- Captured stderr call -----------------------------------------------------------------
2024-04-04 20:19:35,424 ERROR moin.cli._tests:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-vblank.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:35,393 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-vblank.meta\'\n'
------------------------------------------------------------------ Captured log call ------------------------------------------------------------------
INFO moin.cli._tests:__init__.py:36 running ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-vblank.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.data'), '-o']
ERROR moin.cli._tests:__init__.py:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-vblank.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-v1.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:35,393 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/MyPage-vblank.meta\'\n'
________________________________________________________________ test_load_default_ns _________________________________________________________________
artifact_dir = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli')
save_default = CompletedProcess(args=['moin', 'save', '-b', 'default', '-f', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_t...maint.serialization:59 Backup started\n2024-04-04 20:19:43,098 INFO moin.cli.maint.serialization:70 Backup finished\n')
def test_load_default_ns(artifact_dir, save_default):
moin_dir, _ = get_dirs('')
welcome_dir = moin_dir / 'src' / 'moin' / 'help' / 'welcome'
expected_metas = {}
for data_fn in welcome_dir.glob('*.meta'):
with open(data_fn) as f:
meta = json.load(f)
if meta[NAMESPACE] != '':
continue
name = meta[NAME][0]
expected_metas[name] = meta
restore_dir = Path(artifact_dir / 'restore_default')
load(restore_dir, 'backup_default.moin', artifact_dir)
os.chdir(restore_dir)
try:
index_dump = run(['moin', 'index-dump', '--no-truncate'])
metas = {}
contents = {}
items = read_index_dump_latest_revs(index_dump.stdout.decode())
for item in items:
name = item[NAME][0]
content = item.pop(CONTENT)
metas[name] = item
> assert set(expected_metas.keys()) == set(metas.keys())
E AssertionError: assert set() == {'Home'}
E
E Extra items in the right set:
E 'Home'
E Use -v to get more diff
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/test_serialization.py:72: AssertionError
------------------------------------------------------------------ Captured log call ------------------------------------------------------------------
INFO moin.cli._tests:__init__.py:36 running ['moin', 'create-instance']
INFO moin.cli._tests:__init__.py:36 running ['moin', 'index-create']
INFO moin.cli._tests:__init__.py:36 running ['moin', 'load', '-f', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/backup_default.moin')]
INFO moin.cli._tests:__init__.py:36 running ['moin', 'index-dump', '--no-truncate']
__________________________________________________________________ test_load_corrupt __________________________________________________________________
artifact_dir2 = PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli2')
index_create2 = CompletedProcess(args=['moin', 'index-create'], returncode=0, stdout=b'', stderr=b'2024-04-04 20:19:46,015 INFO moin.cli.maint.index:51 Index creation started\n2024-04-04 20:19:46,018 INFO moin.cli.maint.index:55 Index creation finished\n')
def test_load_corrupt(artifact_dir2, index_create2):
moin_dir, _ = get_dirs('cli')
data_dir = moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'data'
# item-put below errors out without the -o, see moin.storage.backends.stores.store
p = run(['moin', 'item-put', '-m', data_dir / 'Corrupt.meta', '-d', data_dir / 'Corrupt.data', '-o'])
> assert_p_succcess(p)
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/test_serialization.py:109:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
p = CompletedProcess(args=['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_t... 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Corrupt.meta\'\n')
def assert_p_succcess(p: subprocess.CompletedProcess):
"""assert returncode 0 and print logs on error"""
try:
> assert p.returncode == 0
E AssertionError
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/__init__.py:57: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------
INFO moin.cli._tests.conftest:conftest.py:63 artifact_dir = /Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli2
INFO moin.cli._tests:__init__.py:36 running ['moin', 'create-instance']
INFO moin.cli._tests:__init__.py:36 running ['moin', 'index-create']
---------------------------------------------------------------- Captured stderr call -----------------------------------------------------------------
2024-04-04 20:19:46,319 ERROR moin.cli._tests:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Corrupt.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Corrupt.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:46,287 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Corrupt.meta\'\n'
------------------------------------------------------------------ Captured log call ------------------------------------------------------------------
INFO moin.cli._tests:__init__.py:36 running ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Corrupt.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Corrupt.data'), '-o']
ERROR moin.cli._tests:__init__.py:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Corrupt.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Corrupt.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:46,287 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Corrupt.meta\'\n'
____________________________________________________________________ test_set_meta ____________________________________________________________________
index_create2 = CompletedProcess(args=['moin', 'index-create'], returncode=0, stdout=b'', stderr=b'2024-04-04 20:19:46,918 INFO moin.cli.maint.index:51 Index creation started\n2024-04-04 20:19:46,921 INFO moin.cli.maint.index:55 Index creation finished\n')
def test_set_meta(index_create2):
moin_dir, _ = get_dirs('')
data_dir = moin_dir / 'src' / 'moin' / 'cli' / '_tests' / 'data'
put = run(['moin', 'item-put', '-m', data_dir / 'Home.meta', '-d', data_dir / 'Home.data', '-o'])
> assert_p_succcess(put)
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/test_set_meta.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
p = CompletedProcess(args=['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_t...rno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta\'\n')
def assert_p_succcess(p: subprocess.CompletedProcess):
"""assert returncode 0 and print logs on error"""
try:
> assert p.returncode == 0
E AssertionError
/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/_tests/__init__.py:57: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------
INFO moin.cli._tests.conftest:conftest.py:63 artifact_dir = /Users/tw/w/moin/.tox/py312/lib/python3.12/_test_artifacts/cli2
INFO moin.cli._tests:__init__.py:36 running ['moin', 'create-instance']
INFO moin.cli._tests:__init__.py:36 running ['moin', 'index-create']
---------------------------------------------------------------- Captured stderr call -----------------------------------------------------------------
2024-04-04 20:19:47,226 ERROR moin.cli._tests:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:47,192 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta\'\n'
------------------------------------------------------------------ Captured log call ------------------------------------------------------------------
INFO moin.cli._tests:__init__.py:36 running ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.data'), '-o']
ERROR moin.cli._tests:__init__.py:59 failure for ['moin', 'item-put', '-m', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta'), '-d', PosixPath('/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.data'), '-o'] stdout = b'' stderr = b'2024-04-04 20:19:47,192 INFO moin.cli.maint.modify_item:103 Put item started\nTraceback (most recent call last):\n File "/Users/tw/w/moin/.tox/py312/bin/moin", line 8, in <module>\n sys.exit(cli())\n ^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1157, in __call__\n return self.main(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1078, in main\n rv = self.invoke(ctx)\n ^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1688, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 1434, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func\n return f(get_current_context(), *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/flask/cli.py", line 388, in decorator\n return ctx.invoke(f, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/click/core.py", line 783, in invoke\n return __callback(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 104, in cli_PutItem\n PutItem(meta, data, overwrite)\n File "/Users/tw/w/moin/.tox/py312/lib/python3.12/site-packages/moin/cli/maint/modify_item.py", line 113, in PutItem\n with open(meta_file, \'rb\') as mf:\n ^^^^^^^^^^^^^^^^^^^^^\nFileNotFoundError: [Errno 2] No such file or directory: \'/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/data/Home.meta\'\n'
This is due to wrong assumptions, just as an example:
E FileNotFoundError: [Errno 2] No such file or directory: '/Users/tw/w/moin/.tox/py312/lib/python3.12/src/moin/cli/_tests/scrapy'
Obviously, this works when tests are run "in place" (in the work dir), but not when moin is installed into a separate venv (this is how tox runs tests for misc. python versions).
Also not sure whether it is a good idea to os.chdir while running the tests.
It seems to be due to the fact that the path is assumed to include the 'src' directory.
https://github.com/moinwiki/moin/blob/9d3de752e4e3006c328acd56254c802474c72426/src/moin/_tests/init.py#L95-L107
I think we can solve this problem by making it the directory where the module is installed.
https://github.com/moinwiki/moin/blob/9d3de752e4e3006c328acd56254c802474c72426/src/moin/_tests/init.py#L103
The fix to the get_dirs function will also require modifications to the associated test cases.