* chore: remove _decorate_all_methods_and_functions_with_type_checker
No one understands this runtime magic anymore.
* build: Bump coverage.py to latest
* test: Skip github in coverage reporting
* test: Print traceback from all threads when test is stuck
* ci: Enable coverage in server side tests
* ci: Always enable coverage
It's cheap in recent python versions, our reasons for selectively
disabling aren't valid anymore.
* ci: Disable stderr capturing
* ci: Use default buffer behaviour in unittest runner
* ci(coverage): Set concurrency to multiprocessing
We do use multiprocessing, perhaps the patches aren't concurrectly
handled?
* ci(coverage): Try parallel run
* fix: Apply subprocess patch
* ci: Don't start web server with coverage
Causes deadlock for some reason. We don't actually report it either.
* ci: only submit UI coverage if ran
* test: remove aggresive stuck test checking
* ci: disable UI coverage
(for now)
* feat: global `frappe.in_test` flag
* feat: helper utility to toggle `frappe.in_test`
* fix: use `toggle_test_mode` util
* fix: use `frappe.in_test`
* chore: add comment explaining global `in_test`
* chore: ignore commit replacing flag usage
* test: temporarily disable `frappe.in_test`
this worked earlier because flag was set in werkzeug.local which was separate for API test client
* test: add comment explaining change
* test: fix universal type checker based on downstream use and more testing
* fix: type validation error reporting
* fix: types; various
* chore: switch off test-time type checking
still too many errors
due to circular imports issues and me going out of my way to make it work 'cleanly', the previous backwards compatibility for FrappeTestCase unfortunately did not work on the manual cli test runner 'run-tests'
While not generally not affecting CI (which is precedented by the framwork's best practices to use 'run-parallel-test'), this broke some manual developer workflows
The restauration of FrappeTestCase in these scenario now unfortunately involves a plain copy of almost an entire implementation into the dumpster.
On the one hand, this doesn not accurately reflect the rather minuscule differences between IntegrationTestCase and FrappeTestCase, but on the other hand, it shields and freezes the old api should IntegrationTestCase evolve futher
* refactor: prefer staticmethod decorator
* refactor: add cm register utility and keep cms in one file
* refactor: enter safe_exec enabled context (treewide)
* refactor: move trace fields to the other test context managers
* chore: marke all test_runner functions for deprecation
* chore: mark some tests.utils functions for deprecation (moved)
* chore: mark traced_field_conext for deprecation (moved)
* chore: placate semgrep in dumpster
* fix: show deprecation warnings per module in tests (incl. from dumpster)
* chore: remove use of deprecated functions from tests