The unit tests causing a lot of trouble right now and producing a lot of errors, most of the time unrelated to the actual change. This PR tries to get to a state where we can again rely on them and focus on bug fixes and improvements.
Work in Progress, errors reduced from 41 to 10 in local test environment, which is already running on Python 3.10 in F36 containers. It might break other things and will take further time to fully complete the PR.
3 new commits added
style: flake8 and black findings corrected
test(lib_git_auth): warnings changed output
test(ui_plugins_pagure_ci): returned html changed
In local tests down to seven failed:
========================================================================================================================== short test summary info =========================================================================================================================== FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline">Projects </span>\n ... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' not found in '\n<!DOCTYPE html>\n<ht... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF... =================================================================================================== 7 failed, 1697 passed, 7 skipped, 4410 warnings in 1929.65s (0:32:09) ====================================================================================================
1 new commit added
tests: wtforms changed error messages
rebased onto 3b31307375c685bc09b4185e2c48ec5c0ba45753
rebased onto b50f6ce5718237462fdc219d2af2f24324f4520e
Recent push hopefully finally fixes AssertionError: {'err[58 chars]: 'EINVALIDREQ', 'errors': {'status': ['Not a valid choice']}}, let's wait for the CI run, local tests with f34 and f36 rpm container went fine.
AssertionError: {'err[58 chars]: 'EINVALIDREQ', 'errors': {'status': ['Not a valid choice']}}
OK still somehow around with packages used in F34 and with F36 other tests failing, but it's getting better, someday at least the tests with rpm packages will be fine again ;)
F36 RPM - local ========================================================================================================================== short test summary info =========================================================================================================================== FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline">Projects </span>\n ... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' not found in '\n<!DOCTYPE html>\n<ht... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF... =================================================================================================== 7 failed, 1697 passed, 8 skipped, 4402 warnings in 2073.83s (0:34:33) ==================================================================================================== F34 RPM - local ========================================================================================================================== short test summary info =========================================================================================================================== FAILED tests/test_pagure_flask_api_issue.py::PagureFlaskApiIssuetests::test_api_change_milestone_issue_invalid_milestone - AssertionError: {'err[61 chars]EINVALIDREQ', 'errors': {'milestone': ['Not a valid choice']}} != {'err[61 chars]EINVALIDREQ', 'errors': {'milest... FAILED tests/test_pagure_flask_api_issue.py::PagureFlaskApiIssuetests::test_api_new_issue_invalid_milestone - AssertionError: {'err[61 chars]EINVALIDREQ', 'errors': {'milestone': ['Not a valid choice']}} != {'err[61 chars]EINVALIDREQ', 'errors': {'milestone': ['Not a... FAILED tests/test_pagure_flask_api_project.py::PagureFlaskApiProjectModifyAclTests::test_api_modify_acls_invalid_acl - AssertionError: {'err[55 chars]de': 'EINVALIDREQ', 'errors': {'acl': ['Not a valid choice']}} != {'err[55 chars]de': 'EINVALIDREQ', 'errors': {'acl'... FAILED tests/test_pagure_flask_api_project.py::PagureFlaskApiProjectCreateProjectTests::test_api_new_project_user_token - AssertionError: {'err[61 chars]EINVALIDREQ', 'errors': {'namespace': ['Not a valid choice']}} != {'err[61 chars]EINVALIDREQ', 'errors': {'namespa... FAILED tests/test_pagure_flask_api_user.py::PagureFlaskApiUSertests::test_api_view_user_activity_date - AssertionError: {'err[200 chars] YYYY-MM, YYYY/MM, YYYY.MM, YYYY, W", 'error_code': 'ENOCODE'} != {'err[200 chars] YYYY-MM, YYYY/MM, YYYY.MM, YYYY, W.", 'error_cod... FAILED tests/test_pagure_flask_ui_plugins_pagure_ci.py::PagureFlaskPluginPagureCItests::test_plugin_pagure_ci - AssertionError: '<div class="col-sm-10">\n <input class="form-control pl-0" id="ci_url" maxlength="255" name="ci_url" required type="text" value="">... FAILED tests/test_style.py::TestStyle::test_code_with_black - AssertionError: 1 != 0 =================================================================================================== 7 failed, 1697 passed, 8 skipped, 2047 warnings in 2594.45s (0:43:14) ==================================================================================================== F34 - Pagure CI =========================== short test summary info ============================ FAILED tests/test_pagure_flask_api_issue.py::PagureFlaskApiIssuetests::test_api_change_milestone_issue_invalid_milestone FAILED tests/test_pagure_flask_api_project.py::PagureFlaskApiProjectCreateProjectTests::test_api_new_project_user_token FAILED tests/test_pagure_flask_api_project.py::PagureFlaskApiProjectModifyAclTests::test_api_modify_acls_invalid_acl FAILED tests/test_pagure_flask_api_issue.py::PagureFlaskApiIssuetests::test_api_new_issue_invalid_milestone FAILED tests/test_pagure_flask_api_user.py::PagureFlaskApiUSertests::test_api_view_user_activity_date FAILED tests/test_pagure_flask_ui_plugins_pagure_ci.py::PagureFlaskPluginPagureCItests::test_plugin_pagure_ci FAILED tests/test_style.py::TestStyle::test_code_with_black - AssertionError:... ===== 7 failed, 1698 passed, 7 skipped, 2051 warnings in 982.94s (0:16:22) =====
You should be able to easily resolve the style failures...
As I started I thought that too, until I realized that black will become a moving target depending on it's own and the used python version.
black
On F36 it will fail, on F34 and even locally on my openSUSE Tumbleweed system it's running fine for the same file, it's only a about an additional empty line:
--- /pagure/pagure/hooks/files/git_multimail_upstream.py 2023-01-16 16:22:19.047464 +0000 +++ /pagure/pagure/hooks/files/git_multimail_upstream.py 2023-01-16 16:22:30.216651 +0000 @@ -111,10 +111,11 @@ out = f.buffer.readline() try: return out.decode(sys.getdefaultencoding()) except UnicodeEncodeError: return out.decode(ENCODING) + else: def is_string(s): try: stderr: would reformat /pagure/pagure/hooks/files/git_multimail_upstream.py Oh no! ๐ฅ ๐ ๐ฅ1 file would be reformatted, 203 files would be left unchanged.
Especially by pinning the target version to py39 and aligning the style of different files accordingly, I got it so far under control, except the above example, black policies don't feel stable across different tool version.
style: set 'black' target version = py39
let's hope https://pagure.io/fork/wombelix/pagure/c/e62fd08ffe010531d20ddae2255e3c31235c9257 brings us closer, local f34 and f36 rpm container finally stopped complaining about styles.
pretty please pagure-ci rebuild
13 new commits added
test(flask_api_user): return value changed format
fix: flask-wtf csrf validation requires timestamp
fix: arrow 'timestamp' property removed in >=v1.0.0
fix: var 'message' = type 'str' in 'new_git_tag()'
test: minor typo in multiple asserts corrected
fix: flake8 and black unit test errors
fix: strip() without testing if var is not None
fix: flask-wtf parameter 'csrf_enabled' deprecated
looks good, no style errors anymore, did a lot of other changes and rewrote some commits, on F34 rpm we should now almost there, let's wait for jenkins to finish.
fix: 'int_timestamp' replaced with 'float_timestamp'
Results after last commit in local F34 container: 1704 passed, 8 skipped, 2055 warnings in 1942.92s (0:32:22). Waiting for Jenkins CI to finish.
test(api_project): remove trailing dot from assert
f34 and centos8 rpm now passing without issues, f34 pip is failing, probably related to https://pagure.io/pagure/pull-request/5360
cherry picked https://pagure.io/pagure/pull-request/5360 on top of this one in my local working copy and let the f34 pip container running before and after. It shows that without fixing the jinja2 escape issue, there is no way to get the pip based tests back working, jinja2.escape isn't available anymore in the package installed via pip.
jinja2.escape
F34 pip py38 - without 56e7655643ccbc3079fab7af010ea99bfa71a884 (fix: cannot import name 'escape' from 'jinja2') - https://pagure.io/pagure/pull-request/5360
============================================================================================================================ test session starts ============================================================================================================================= platform linux -- Python 3.8.16, pytest-7.2.1, pluggy-1.0.0 cachedir: /tox/py38/.pytest_cache rootdir: /pagure plugins: cov-4.0.0, xdist-3.1.0 gw0 [1692] / gw1 [1692] / gw2 [1692] / gw3 [1692] .FFFFFFFFFFFF.FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 15%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 30%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 46%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 61%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 77%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 92%] FFFFFFFFFFFFFFFFFFF..FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsssFFsFsFFFFFFFFsFF...F...F [100%]Traceback (most recent call last): File "/tox/py38/bin/pytest", line 8, in <module> sys.exit(console_main()) File "/tox/py38/lib/python3.8/site-packages/_pytest/config/__init__.py", line 190, in console_main code = main() File "/tox/py38/lib/python3.8/site-packages/_pytest/config/__init__.py", line 167, in main ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main( File "/tox/py38/lib/python3.8/site-packages/pluggy/_hooks.py", line 265, in __call__ return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult) File "/tox/py38/lib/python3.8/site-packages/pluggy/_manager.py", line 80, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/tox/py38/lib/python3.8/site-packages/pluggy/_callers.py", line 60, in _multicall return outcome.get_result() File "/tox/py38/lib/python3.8/site-packages/pluggy/_result.py", line 60, in get_result raise ex[1].with_traceback(ex[2]) File "/tox/py38/lib/python3.8/site-packages/pluggy/_callers.py", line 39, in _multicall res = hook_impl.function(*args) File "/tox/py38/lib/python3.8/site-packages/_pytest/main.py", line 317, in pytest_cmdline_main return wrap_session(config, _main) File "/tox/py38/lib/python3.8/site-packages/_pytest/main.py", line 305, in wrap_session config.hook.pytest_sessionfinish( File "/tox/py38/lib/python3.8/site-packages/pluggy/_hooks.py", line 265, in __call__ return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult) File "/tox/py38/lib/python3.8/site-packages/pluggy/_manager.py", line 80, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/tox/py38/lib/python3.8/site-packages/pluggy/_callers.py", line 55, in _multicall gen.send(outcome) File "/tox/py38/lib/python3.8/site-packages/_pytest/terminal.py", line 808, in pytest_sessionfinish outcome.get_result() File "/tox/py38/lib/python3.8/site-packages/pluggy/_result.py", line 60, in get_result raise ex[1].with_traceback(ex[2]) File "/tox/py38/lib/python3.8/site-packages/pluggy/_callers.py", line 39, in _multicall res = hook_impl.function(*args) File "/tox/py38/lib/python3.8/site-packages/xdist/dsession.py", line 86, in pytest_sessionfinish nm.teardown_nodes() File "/tox/py38/lib/python3.8/site-packages/xdist/workermanage.py", line 81, in teardown_nodes self.group.terminate(self.EXIT_TIMEOUT) File "/tox/py38/lib/python3.8/site-packages/execnet/multi.py", line 215, in terminate safe_terminate( File "/tox/py38/lib/python3.8/site-packages/execnet/multi.py", line 308, in safe_terminate reply = workerpool.spawn(termkill, termfunc, killfunc) File "/tox/py38/lib/python3.8/site-packages/execnet/gateway_base.py", line 315, in spawn self.execmodel.start(self._perform_spawn, (reply,)) File "/tox/py38/lib/python3.8/site-packages/execnet/gateway_base.py", line 93, in exec_start self._start_new_thread(func, args) RuntimeError: can't start new thread ERROR: InvocationError for command /tox/py38/bin/pytest -n auto tests (exited with code 1) __________________________________________________________________________________________________________________________________ summary ___________________________________________________________________________________________________________________________________ ERROR: py38: commands failed
F34 pip py38 - with 56e7655643ccbc3079fab7af010ea99bfa71a884 (fix: cannot import name 'escape' from 'jinja2') - https://pagure.io/pagure/pull-request/5360
========================================================================================================================== short test summary info =========================================================================================================================== FAILED tests/test_pagure_flask_api_boards.py::PagureFlaskApiBoardstests::test_api_board_create_no_contenttype - json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) FAILED tests/test_pagure_flask_api_boards.py::PagureFlaskApiBoardstests::test_api_board_create_no_data - json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) FAILED tests/test_pagure_flask_api_issue_custom_fields.py::PagureFlaskApiCustomFieldIssuetests::test_api_update_custom_field_bad_request - json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) FAILED tests/test_pagure_flask_api_boards.py::PagureFlaskApiBoardsWithBoardtests::test_api_board_delete_invalid_html_input - json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) FAILED tests/test_pagure_flask_api_pr_flag.py::PagureFlaskApiPRFlagtests::test_no_input - json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) FAILED tests/test_pagure_flask_api_fork.py::PagureFlaskApiForktests::test_api_pull_request_merge - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_api_fork.py::PagureFlaskApiForktests::test_api_pull_request_merge_conflicting - AssertionError: 400 != 409 FAILED tests/test_pagure_flask_api_fork.py::PagureFlaskApiForktests::test_api_pull_request_merge_user_token - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_api_pr_flag.py::PagureFlaskApiPRFlagUserTokentests::test_no_input - json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) FAILED tests/test_pagure_flask_api_project.py::PagureFlaskApiProjectOptionsTests::test_api_modify_project_options_no_data - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_api_project.py::PagureFlaskApiProjecttests::test_api_modify_project_invalid_request - json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) FAILED tests/test_pagure_flask_ui_app.py::PagureFlaskApptests::test_markdown_preview_valid_commit - AssertionError: '<div class="markdown"><p>Cf commit <a hre[126 chars]div>' != 'Cf commit 13d2e3b0d74eb97c0719379d4dde60efa6308378' FAILED tests/test_pagure_flask_api_issue.py::PagureFlaskApiIssuetests::test_api_update_custom_field - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_ui_app.py::PagureFlaskApptests::test_new_project_with_template - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_app.py::PagureFlaskApptests::test_non_ascii_new_project - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_app.py::PagureFlaskApptests::test_patched_markdown_preview - AssertionError: '<div class="markdown"><p>pingou committed[174 chars]div>' != 'pingou committed on test#9364354a4555ba17[20 chars]aecd' FAILED tests/test_pagure_flask_api_ui_private_repo.py::PagurePrivateRepotest::test_api_private_repo_pr_merge - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_api_user.py::PagureFlaskApiUSertests::test_api_view_user_activity_date - AssertionError: {'act[60 chars]2', 'description_mk': 'pingou created PR test#[1030 chars]-17'} != {'act[60 chars]2', 'type': 'created', 'description_mk': '<div[1450 chars]-17'} FAILED tests/test_pagure_flask_ui_app.py::PagureFlaskAppNewProjecttests::test_new_project_readme - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_fork_edit_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_app.py::PagureFlaskAppNewProjecttests::test_new_project_with_default_branch - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_fork_edit_file_namespace - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_app.py::PagureFlaskAppNewProjecttests::test_new_project_with_default_branch_instance_wide - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_app.py::PagureFlaskAppNewProjecttests::test_new_project_with_default_branch_instance_wide_overriden - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_issues.py::PagureFlaskIssuestests::test_view_issue_forked_namespace_comment - AssertionError: '<span class="comment_text comment_body"><div class="markdown"><p>foo bar <a href="/fork/pingou/ns/test3/issue/1" title="[Open] test issue">#1</a> see?</p></div></span>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equ... FAILED tests/test_pagure_flask_ui_issues.py::PagureFlaskIssuestests::test_view_issue_namespace_comment - AssertionError: '<span class="comment_text comment_body"><div class="markdown"><p>foo bar <a href="/ns/test3/issue/1" title="[Open] test issue">#1</a> see?</p></div></span>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-... FAILED tests/test_pagure_flask_docs.py::PagureFlaskDocstests::test_view_docs - AssertionError: 500 != 200 FAILED tests/test_pagure_flask_docs.py::PagureFlaskDocstests::test_view_docs_encoding_error - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_fork_to_other_unrelated_fork - AssertionError: "<p>fork/foo/test is not part of fork/ralph/test2's family</p>" not found in '<!doctype html>\n<html lang=en>\n<title>400 Bad Request</title>\n<h1>Bad Request</h1>\n<p>fork/foo/test is not part of fork/ralph/test2's family</p>\n' FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_from_fork_fixing_ticket - AssertionError: '<p>Test Initial Comment</p>\n<p>Fixes <a href' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\n <title>PR#3: foo bar PR - test\n - Pagure</title>\n <link r... FAILED tests/test_pagure_flask_ui_issues_templates.py::PagureFlaskIssuesTemplatetests::test_get_ticket_template_w_template - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_issues_templates.py::PagureFlaskIssuesTemplatetests::test_get_ticket_template_w_template_namespace - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_rebase.py::PagureRebasetests::test_rebase_api_api_logged_in - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_ui_issues_templates.py::PagureFlaskIssuesTemplatetests::test_new_issue_w_specific_template - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_issues_templates.py::PagureFlaskIssuesTemplatetests::test_new_issue_w_template - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_rebase.py::PagureRebasetests::test_rebase_api_conflicts - json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) FAILED tests/test_pagure_flask_rebase.py::PagureRebasetests::test_rebase_api_ui_logged_in_different_user - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_ui_login.py::PagureFlaskLogintests::test_force_logout - werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. FAILED tests/test_pagure_flask_rebase.py::PagureRebasetests::test_rebase_api_ui_logged_in_pull_request_author - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_rebase.py::PagureRebaseNoHooktests::test_rebase_api_ui_logged_in - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_rebase.py::PagureRebaseNotAllowedtests::test_rebase_api_api_logged_in - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_rebase.py::PagureRebaseNotAllowedtests::test_rebase_api_ui_logged_in - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_ui_no_master_branch.py::PagureFlaskNoMasterBranchtests::test_view_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_no_master_branch.py::PagureFlaskNoMasterBranchtests::test_view_raw_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_rebase.py::PagureRebaseNotAllowedtests::test_rebase_api_ui_logged_in_different_user - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_rebase.py::PagureRebaseNotAllowedtests::test_rebase_api_ui_logged_in_pull_request_author - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_ui_remote_pr.py::PagureRemotePRtests::test_new_remote_pr_unauth - AssertionError: 'You should be redirected automatically to target URL: <a href="/login/?' not found in '<!doctype html>\n<html lang=en>\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to the target URL: <a href="/l... FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_view_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_view_file_with_wrong_encoding - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_view_raw_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_view_repo - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline">Projects </span>\n </span>\n <div class="ml-auto">\n <span class="badge ba... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_view_tree - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_blame.py::PagureFlaskRepoViewBlameFiletests::test_view_blame_file_default_branch_master - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_blame.py::PagureFlaskRepoViewBlameFiletests::test_view_blame_file_default_branch_non_master - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_blame.py::PagureFlaskRepoViewBlameFiletests::test_view_blame_file_non_ascii_name - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_blame.py::PagureFlaskRepoViewBlameFiletests::test_view_blame_file_on_branch - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_blame.py::PagureFlaskRepoViewBlameFiletests::test_view_blame_file_on_commit - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_blame.py::PagureFlaskRepoViewBlameFiletests::test_view_blame_file_on_tag - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFiletests::test_view_file_basic_text - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_slash_branch_name.py::PagureFlaskSlashInBranchtests::test_view_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_slash_branch_name.py::PagureFlaskSlashInBranchtests::test_view_raw_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFiletests::test_view_file_empty_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFiletests::test_view_file_fork_and_edit_logged_in - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFiletests::test_view_file_fork_and_edit_logged_out - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFiletests::test_view_file_nested_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFiletests::test_view_file_non_ascii_file - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFileForktests::test_view_file_fork_and_edit_on_a_fork - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFileForktests::test_view_file_fork_and_edit_on_fork_logged_out - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFileForktests::test_view_file_fork_and_edit_on_project - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFileForktests::test_view_file_fork_and_edit_on_your_fork - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFileForktests::test_view_file_in_branch_in_fork - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_repo_view_file.py::PagureFlaskRepoViewFileForktests::test_view_file_nested_file_in_fork - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib.py::PagureLibtests::test_text2markdown - AssertionError: 'foo bar test#1 see?' != '<div class="markdown"><p>foo bar <a href=[77 chars]div>' FAILED tests/test_pagure_lib.py::PagureLibtests::test_text2markdown_table - AssertionError: '<div[40 chars]\n<th>Left-aligned</th>\n<th>Center-aligned</t[236 chars]div>' != '<div[40 chars]\n<th align="left">Left-aligned</th>\n<th alig[362 chars]div>' FAILED tests/test_pagure_lib.py::PagureLibtests::test_text2markdown_table_old_mk - AssertionError: '<div[40 chars]\n<th>Left-aligned</th>\n<th>Center-aligned</t[236 chars]div>' != '<div[40 chars]\n<th align="left">Left-aligned</th>\n<th alig[362 chars]div>' FAILED tests/test_pagure_lib_encoding_utils.py::TestGuessEncodings::test_guess_encodings - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_encoding_utils.py::TestDecode::test_decode - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_encoding_utils.py::TestGuessEncoding::test_guess_encoding_ascii - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_encoding_utils.py::TestGuessEncoding::test_guess_encoding_favor_utf_8 - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthtests::test_edit_pr - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git.py::PagureLibGitCommitToPatchtests::test_commit_to_patch_empty_commit - AssertionError: 'From c5f88c4ef97f75d4445ae5864c06e0e70087[137 chars]\n\n' != '' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthtests::test_edit_with_all_allowed - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthtests::test_edit_with_all_denied - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthPagureBackendtests::test_edit_commit_passed_epel8 - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthPagureBackendtests::test_edit_contributor_passed_epel - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthPagureBackendtests::test_edit_contributor_passed_epel8 - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthPagureBackendtests::test_edit_contributor_passed_epel_no_regex - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthPagureBackendtests::test_edit_contributor_rejected - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_mimetype.py::TestMIMEType::test_get_normal_headers - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_mimetype.py::TestMIMEType::test_guess_type - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_flask_ui_issues.py::PagureFlaskIssuestests::test_new_issue_customized - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthPagureBackendtests::test_edit_no_commit - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_lib_git_auth.py::PagureLibGitAuthPagureBackendtests::test_edit_ticket_rejected - AttributeError: 'UniversalDetector' object has no attribute '_mCharSetProbers' FAILED tests/test_pagure_merge_pr_no_fork.py::PagureMergePrNoForkTest::test_api_pull_request_merge - AssertionError: 400 != 200 FAILED tests/test_pagure_flask_ui_issues.py::PagureFlaskIssuestests::test_update_issue - AssertionError: '<span class="font-size-09 autogenerated-comment pl-4"><div class="markdown"><p><strong>Metadata Update from <a href="http://localhost.localdomain/user/pingou"></a><a href="http://localhost.localdomain/user/pingou">@pingou</a></strong>:<br>\n- Issue... FAILED tests/test_pagure_merge_pr_no_fork.py::PagureMergePrNoForkTest::test_api_pull_request_merge_no_fork - AssertionError: 400 != 200 FAILED tests/test_pfmarkdown.py::TestObjAnchorTag::test_obj_anchor_tag_issue - AttributeError: module 'markdown.util' has no attribute 'etree' FAILED tests/test_pfmarkdown.py::TestObjAnchorTag::test_obj_anchor_tag_private_issue - AttributeError: module 'markdown.util' has no attribute 'etree' FAILED tests/test_pfmarkdown.py::TestObjAnchorTag::test_obj_anchor_tag_pr - AttributeError: module 'markdown.util' has no attribute 'etree' FAILED tests/test_pagure_flask_ui_issues.py::PagureFlaskIssuestests::test_update_issue_add_tags - AssertionError: '<br>\n- Issue tagged with: green, red</p>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\n <title>Issue #1: Test issue - test - Pagure</title>\n <link rel... ERROR tests/test_pagure_flask_ui_oidc_login.py ============================================================================================== 107 failed, 1593 passed, 8 skipped, 1119 warnings, 1 error in 2055.39s (0:34:15) ==============================================================================================
so you want me to merge that one so you can try to continue fixing this one?
Either you merge https://pagure.io/pagure/pull-request/5360 or I can close it and put the change also in this PR together with all the other unit test fiex. I know this PR becomes quite large already, not sure if you happy with that. But i thought keeping it all together until the unit tests finally go back to green is probably the best.
rebased onto b0e8051b3da85e675a446c612e3c8a8d9823e393
I merged that one now and this now has conflicts with master.
Or I guess it successfully rebased, nevermind?
I didn't pushed it, just did the cherry picking and testing locally, so we are good, thanks a lot for merging the other one :thumbsup:
For documentation purposes, f34 rpm and centos stream 8 rpm still passing with the jinja2.escape > markupsafe.escape switch. So I only have to fix 107 failed tests in the pip environment and we are back in business :D
F34 rpm - with 56e7655643ccbc3079fab7af010ea99bfa71a884 (fix: cannot import name 'escape' from 'jinja2') - https://pagure.io/pagure/pull-request/5360 ============================================================================================================================ test session starts ============================================================================================================================= platform linux -- Python 3.9.13, pytest-6.2.2, py-1.11.0, pluggy-0.13.1 rootdir: /pagure plugins: forked-1.3.0, xdist-2.2.0 gw0 [1711] / gw1 [1711] / gw2 [1711] / gw3 [1711] ...................................................................................................................................................................................................................................................................... [ 15%] ...................................................................................................................................................................................................................................................................... [ 30%] ...................................................................................................................................................................................................................................................................... [ 45%] ....s................................................................................................................................................................................................................................................................. [ 61%] ...................................................................................................................................................................................................................................................................... [ 76%] ...................................................................................................................................................................................................................................................................... [ 91%] .................................................................................................................ss....s..s...s.........s.. [100%] ======================================================================================================== 1704 passed, 8 skipped, 2055 warnings in 2030.96s (0:33:50) ========================================================================================================= Centos 8 Stream rpm - with 56e7655643ccbc3079fab7af010ea99bfa71a884 (fix: cannot import name 'escape' from 'jinja2') - https://pagure.io/pagure/pull-request/5360 ============================================================================================================================ test session starts ============================================================================================================================= platform linux -- Python 3.6.8, pytest-3.4.2, py-1.5.3, pluggy-0.6.0 rootdir: /pagure, inifile: plugins: xdist-1.24.1, forked-1.0.2, celery-4.3.0 gw0 [1711] / gw1 [1711] / gw2 [1711] / gw3 [1711] / gw4 [1711] / gw5 [1711] / gw6 [1711] / gw7 [1711] scheduling tests via LoadScheduling ...................................................................................................................................................................................................................................................................... [ 15%] ...................................................................................................................................................................................................................................................................... [ 30%] ...................................................................................................................................................................................................................................................................... [ 45%] ...................................................................................................................................................................................................................................................................... [ 61%] ....................................................................................................................................s................................................................................................................................. [ 76%] ...................................................................................................................................................................................................................................................................... [ 91%] .........................................................................................................ss.........s.s..s...s.......s..... [100%] =========================================================================================================== 1703 passed, 8 skipped, 4 warnings in 1004.78 seconds ============================================================================================================
rebased onto f7db3a00a3f07304b3a2da122fc6db44542fcfe2
f34 and centos8 stream rpm passing, f34 pip py38 completed without RuntimeError: can't start new thread error and down from 107 to 51 (local) / 53 (jenkins ci) failed tests.
RuntimeError: can't start new thread
17 new commits added
fix: invalid json request > error 400 html response
fix: 'UniversalDetector' no attr '_mCharSetProbers'
f34 and centos8 stream rpm passing, f34 pip py38 down to 29 failed and 1 error.
build(requirements): pin python package versions
build(requirements): remove 'setuptools'
build(requirements): remove 'email_validator'
18 new commits added
Build 111 (Jan 18, 2023, 7:33:51 PM)
F34 rpm: 1705 passed, 7 skipped, 2059 warnings C8S rpm: 1703 passed, 8 skipped, 4 warnings F34 pip: 10 failed, 1690 passed, 8 skipped, 1458 warnings, 1 error
build(tox): align used pkgs, remove py35 and py36
Status Update, some slightly different results between jenkins ci and my local container, but overall good progress. F34 and C8S RPM are stable, F34 PIP shows some errors but there are very similar to the errors I see in F36 RPM and F36 PIP. I hope to find some time during the next days to get the rest fixed.
2023-01-19 Baseline ------------------- Jenkins CI ********** F34 rpm: ========== 1705 passed, 7 skipped, 2059 warnings in 992.18s (0:16:32) ========== C8S rpm: ============= 1703 passed, 8 skipped, 4 warnings in 819.18 seconds ============= F34 pip: =========================== short test summary info ============================ FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff FAILED tests/test_pagure_flask_ui_remote_pr.py::PagureRemotePRtests::test_new_remote_pr_unauth FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file FAILED tests/test_pagure_flask_docs.py::PagureFlaskDocstests::test_view_docs FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_fork_to_other_unrelated_fork FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off ERROR tests/test_pagure_flask_ui_oidc_login.py = 10 failed, 1690 passed, 8 skipped, 1458 warnings, 1 error in 970.78s (0:16:10) = Local Container *************** CentOS Stream 8 RPM: 1703 passed, 8 skipped, 4 warnings Fedora 34 RPM: 1704 passed, 8 skipped, 2055 warnings Fedora 34 PIP: ========================================================================================================================== short test summary info =========================================================================================================================== FAILED tests/test_pagure_flask_docs.py::PagureFlaskDocstests::test_view_docs - AssertionError: 500 != 200 FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_fork_to_other_unrelated_fork - AssertionError: "<p>fork/foo/test is not part of fork/ralph/test2's family</p>" not found in '<!doctype html>\n<html lang=en>\n<title>400 Bad Request... FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_remote_pr.py::PagureRemotePRtests::test_new_remote_pr_unauth - AssertionError: 'You should be redirected automatically to target URL: <a href="/login/?' not found in '<!doctype html>\n<html lang=en>\n<title>Redirecting...</title>\n<h... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline">Projects </span>\n ... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' not found in '\n<!DOCTYPE html>\n<ht... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_renew_api_token - AssertionError: datetime.date(2023, 7, 17) != datetime.date(2023, 7, 18) FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_revoke_api_token - AssertionError: datetime.date(2023, 7, 17) != datetime.date(2023, 7, 18) ERROR tests/test_pagure_flask_ui_oidc_login.py ============================================================================================== 12 failed, 1688 passed, 8 skipped, 1398 warnings, 1 error in 1881.39s (0:31:21) =============================================================================================== Fedora 36 RPM: ========================================================================================================================== short test summary info =========================================================================================================================== FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline">Projects </span>\n ... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' not found in '\n<!DOCTYPE html>\n<ht... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF... =================================================================================================== 7 failed, 1697 passed, 8 skipped, 4406 warnings in 1884.92s (0:31:24) ==================================================================================================== Fedora 36 PIP: ========================================================================================================================== short test summary info =========================================================================================================================== FAILED tests/test_pagure_flask_docs.py::PagureFlaskDocstests::test_view_docs - AssertionError: 500 != 200 FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_fork_to_other_unrelated_fork - AssertionError: "<p>fork/foo/test is not part of fork/ralph/test2's family</p>" not found in '<!doctype html>\n<html lang=en>\n<title>400 Bad Request... FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_remote_pr.py::PagureRemotePRtests::test_new_remote_pr_unauth - AssertionError: 'You should be redirected automatically to target URL: <a href="/login/?' not found in '<!doctype html>\n<html lang=en>\n<title>Redirecting...</title>\n<h... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline">Projects </span>\n ... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' not found in '\n<!DOCTYPE html>\n<ht... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF... ERROR tests/test_pagure_flask_ui_oidc_login.py ============================================================================================== 10 failed, 1690 passed, 8 skipped, 1405 warnings, 1 error in 1869.53s (0:31:09) ===============================================================================================
rebased onto b7ab1b4150f509177eb4a64f985935b0e468b3ab
rebased onto 34faff4927b2427aae6a4b2efd06d87bd642209e
After setting version limits in requirements.txt, the jenkins ci and local pip based container and tests finally come up with identical results. Also F36 behave now very similar to F34, overall down to 8 failed tests that need to be fixed.
requirements.txt
Jenkins CI ********** F34 rpm: 1705 passed, 7 skipped, 2059 warnings C8S rpm: 1703 passed, 8 skipped, 4 warnings F34 pip: 8 failed, 1696 passed, 8 skipped, 1467 warnings FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_fork_to_other_unrelated_fork FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off Local Container *************** CentOS Stream 8 RPM: 1703 passed, 8 skipped, 4 warnings Fedora 34 RPM: 1704 passed, 8 skipped, 2055 warnings Fedora 34 PIP: 8 failed, 1696 passed, 8 skipped, 1411 warnings FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_fork_to_other_unrelated_fork - AssertionError: "<p>fork/foo/test is not part of fork/ralph/test2's family</p>" not found in '<!doctype html>\n<html lang=en>\n<title>400 Bad Request... FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline">Projects </span>\n ... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' not found in '\n<!DOCTYPE html>\n<ht... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF... Fedora 36 RPM: 7 failed, 1697 passed, 8 skipped, 4410 warnings FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline">Projects </span>\n ... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' not found in '\n<!DOCTYPE html>\n<ht... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF... Fedora 36 PIP: 8 failed, 1696 passed, 8 skipped, 1411 warnings FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_fork_to_other_unrelated_fork - AssertionError: "<p>fork/foo/test is not part of fork/ralph/test2's family</p>" not found in '<!doctype html>\n<html lang=en>\n<title>400 Bad Request... FAILED tests/test_pagure_flask_ui_plugins_irc.py::PagureFlaskPluginIRCtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_mail.py::PagureFlaskPluginMailtests::test_plugin_mail - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_noff.py::PagureFlaskPluginNoFFtests::test_plugin_noff - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_plugins_rtd_hook.py::PagureFlaskPluginRtdHooktests::test_plugin_pagure_request - TypeError: not all arguments converted during string formatting FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline">Projects </span>\n ... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' not found in '\n<!DOCTYPE html>\n<ht... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF...
2 new commits added
fix: TypeError in irc, mail, noff, rtd_hook plugin
test(ui_plugins_irc): renamed to 'test_plugin_irc'
4 failed tests fixed with the latest two commits (TypeError: not all arguments converted during string formatting), test results local Container:
TypeError: not all arguments converted during string formatting
CentOS Stream 8 RPM: 1703 passed, 8 skipped, 4 warnings Fedora 34 RPM: 1704 passed, 8 skipped, 2055 warnings Fedora 34 PIP: 4 failed, 1700 passed, 8 skipped, 1413 warnings FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_fork_to_other_unrelated_fork - AssertionError: "<p>fork/foo/test is not part of fork/ralph/test2's family</p>" not found in '<!doctype html>\n<htm... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' no... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Typ... Fedora 36 RPM: 3 failed, 1701 passed, 8 skipped, 4406 warnings FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' no... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Typ... Fedora 36 PIP: 4 failed, 1700 passed, 8 skipped, 1411 warnings FAILED tests/test_pagure_flask_ui_fork.py::PagureFlaskForktests::test_new_request_pull_fork_to_other_unrelated_fork - AssertionError: "<p>fork/foo/test is not part of fork/ralph/test2's family</p>" not found in '<!doctype html>\n<htm... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo - AssertionError: '<span>\n <i class="fa fa-calendar-o fa-rotate-270 fa-fw text-muted"></i>\n <span class="d-none d-md-inline... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_delete_repo_when_turned_off - AssertionError: '<span class="btn btn-outline-secondary disabled opacity-100 border-0 ml-auto font-weight-bold">3 Projects</span>' no... FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_edit_file - AssertionError: '<title>Commits - test - Pagure</title>' not found in '\n<!DOCTYPE html>\n<html lang=\'en\'>\n<head>\n <meta http-equiv="Content-Typ...
fix: returned html entities ascii instead unicode
fix: 'NoneType' object has no attribute 'replace'
fix(query): filtered records part of results
Quite successful, Jenkins builds are fine, why I have two tests fail in my local F34 pip container is something I have to dig deeper today, but can't be a huge thing anymore.
Jenkins CI ---------- F34 RPM: 1705 passed, 7 skipped, 2059 warnings C8S RPM: 1703 passed, 8 skipped, 4 warnings F34 PIP: 1704 passed, 8 skipped, 1621 warnings Local Container --------------- F34 RPM: 1704 passed, 8 skipped, 2055 warnings C8S RPM: 1703 passed, 8 skipped, 4 warnings F34 PIP: 2 failed, 1702 passed, 8 skipped, FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_renew_api_token - AssertionError: datetime.date(2023, 7, 22) != datetime.date(2023, 7, 23) FAILED tests/test_pagure_flask_ui_repo.py::PagureFlaskRepotests::test_revoke_api_token - AssertionError: datetime.date(2023, 7, 22) != datetime.date(2023, 7, 23) F36 RPM: 1704 passed, 8 skipped, 4560 warnings F36 PIP: 1704 passed, 8 skipped, 1566 warnings
After checking the relevant assert:
self.assertEqual( repo.tokens[0].expiration.date(), datetime.datetime.utcnow().date() + datetime.timedelta(days=(30 * 6)), )
It looks like that the tests failed because I was running them around midnight in my local environment, the way the diff is calculated and checked doesn't work in such an edge case. Was just running the exact same test again and everything went fine. So yeah it could be improved but for now I think it's good enough.
WIP removed, ready for Review @ngompa @pingou, scope was to fix failed jobs with different OS and package versions. There are tons of deprecation warnings and other things that need work and optimization, but that's a different story and will handled in other PRs at a later point.
The restrictions in the requirements*.txt files will make pagure uninstallable on Fedora when packaged. We do need to have this fixed so pagure works without pinned dependencies...
requirements*.txt
I agree with Neal there, I very much dislike restrictions in requirements*.txt unless we know for sure we're incompatible with a version (or range of).
So you say it's impossible to build a fedora package if any python package in the requirements file has a limit on the allowed version? I called it pinned, but it's actually a range of versions, in nearly no case just one specific.
It's not that really like and prefer it, but what I can see it will be nearly impossible to get the unit tests and also pagure, in the condition it is right now, stable in a pip environment without it. I tried for days to satisfy very old and bleeding edge versions until I decided to set a limit.
To make my changes and decisions easier to understand, I put a lot of additional information and comments into the commits, see:
build(requirements): pin python package versions https://pagure.io/fork/wombelix/pagure/c/c9376756f7097d66f5ea6b06a95ab00d80298b63
build(requirements): pin 'itsdangerous' to < 2.1 https://pagure.io/fork/wombelix/pagure/c/7d6573a31c17bff662f618f923dd0eb6e5c9b385
Lot of packages removed long deprecated functionality and / or introduced breaking changes in the latest versions.
In a major release 6.0, which is in my opinion very far away given the amount of issues in relation to active contributor, it will probably be possible again to only set minimum requirements, but until then I think we need it to move forward.
I would like to see further bug fixes and some features released as new 5.13 versions. Also to demonstrate that the project is still alive, makes progress and hopefully to attract further contributors.
Only focusing on 6.0 without any idea how long this will take could bring us in a MoinMoin Wiki situation, where version 1 is unmaintained since years but version 2 is still far away from a release.
Thoughts? Ideas?
I'm giving +1 to this, first success CI run in a while.
These pins basically break shipping on Fedora 37+ and openSUSE Tumbleweed.
The pin for itsdangerous basically means we can't ship Pagure in Fedora 38+ or openSUSE Tumbleweed.
itsdangerous
I can certainly merge this, but we can't release like this.
do we know which ones are the most problematic? I could try to take a look at it
build(requirements): pin python package versions https://pagure.io/fork/wombelix/pagure/c/c9376756f7097d66f5ea6b06a95ab00d80298b63 These pins basically break shipping on Fedora 37+ and openSUSE Tumbleweed. build(requirements): pin 'itsdangerous' to < 2.1 https://pagure.io/fork/wombelix/pagure/c/7d6573a31c17bff662f618f923dd0eb6e5c9b385 The pin for itsdangerous basically means we can't ship Pagure in Fedora 38+ or openSUSE Tumbleweed. I can certainly merge this, but we can't release like this.
There is one thing which is confusing for me, even if the package can be build for F38, Tumbleweed and so on, pagure will just not be fully functional without issues, which cause a bad user experience and frustration.
Setting a max version for 5.13 releases until 6.0 is ready, ensures that pagure is working as expected on the OS versions a package will be build for.
Maybe I'm overseeing something, but isn't it better to clearly state what's supported and what not instead just focusing on getting the package build even if the software is basically broken?
With the suggested changes I only try to address the fact that we, right now, not even have working unit test. With no proper tests, we barely can work on any fix or improvement without running into discussion is they might break something or not.
I focused to find some common ground in regards to the package versions between F34 (rpm + pip), F36 (rpm + pip), CentOS 8 Stream (rpm + pip) and FreeBSD 13.1 (pkg). I can also take a look on F37 or other specific Versions, but rolling release bleeding edge like Tumbleweed or the newest via pip will not be possible at this stage, or at least I don't have an idea how to make it possible.
We have a massive amount of work in front of us and I just think we have to find a way to make smaller steps to actually make some progress.
I think you're missing that I'm totally fine with upgrading things forward for the master branch. We can cherry-pick some fixes for 5.13.x for another patch release, but we can move things forward for master (which is definitely intended for 6.0).
That also includes upgrading the CI to currently supported Fedora and CentOS Stream versions. Pagure 6.0 is also aimed to be introduced into CentOS Stream 9 via EPEL as soon as we have things worked out in Fedora.
Sorry, a few very busy days, @ngompa thanks for your Feedback and I suggest to just merge this PR. It's not perfect but looks like there was no better solution suggested so far. As soon this one is merged, we can finally start working on bug fixes and new features without the fear to break anything without noticing :)
I'll merge this, but we will need to fix this before making a 6.0 release.
Pull-Request has been merged by ngompa
The unit tests causing a lot of trouble right now and producing a lot of errors, most of the time unrelated to the actual change.
This PR tries to get to a state where we can again rely on them and focus on bug fixes and improvements.