seitime-frappe/frappe/tests/utils/__init__.py
Sagar Vora b3e1eda4c8
feat: global frappe.in_test flag (#32960)
* 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
2025-06-17 19:19:31 +05:30

55 lines
1.3 KiB
Python

import logging
import frappe
logger = logging.Logger(__file__)
from .generators import *
def check_orpahned_doctypes():
"""Check that all doctypes in DB actually exist after patch test"""
from frappe.model.base_document import get_controller
doctypes = frappe.get_all("DocType", {"custom": 0}, pluck="name")
orpahned_doctypes = []
for doctype in doctypes:
try:
get_controller(doctype)
except ImportError:
orpahned_doctypes.append(doctype)
if orpahned_doctypes:
frappe.throw(
"Following doctypes exist in DB without controller.\n {}".format("\n".join(orpahned_doctypes))
)
def toggle_test_mode(enable: bool):
"""Enable or disable `frappe.in_test` (and related deprecated flag)"""
frappe.in_test = enable
frappe.local.flags.in_test = enable
from frappe.deprecation_dumpster import (
get_tests_CompatFrappeTestCase,
)
from frappe.deprecation_dumpster import (
tests_change_settings as change_settings,
)
from frappe.deprecation_dumpster import (
tests_debug_on as debug_on,
)
FrappeTestCase = get_tests_CompatFrappeTestCase()
from frappe.deprecation_dumpster import (
tests_patch_hooks as patch_hooks,
)
from frappe.deprecation_dumpster import (
tests_timeout as timeout,
)
from frappe.deprecation_dumpster import (
tests_utils_get_dependencies as get_dependencies,
)