Merge pull request #18756 from ankush/qb_simpler
refactor: qb builder class identification
This commit is contained in:
commit
ba25e97d4e
3 changed files with 5 additions and 10 deletions
|
|
@ -47,6 +47,8 @@ class Base:
|
|||
class MariaDB(Base, MySQLQuery):
|
||||
Field = terms.Field
|
||||
|
||||
_BuilderClasss = MySQLQueryBuilder
|
||||
|
||||
@classmethod
|
||||
def _builder(cls, *args, **kwargs) -> "MySQLQueryBuilder":
|
||||
return super()._builder(*args, wrapper_cls=ParameterizedValueWrapper, **kwargs)
|
||||
|
|
@ -70,6 +72,8 @@ class Postgres(Base, PostgreSQLQuery):
|
|||
# they are two different objects. The quick fix used here is to replace the
|
||||
# Field names in the "Field" function.
|
||||
|
||||
_BuilderClasss = PostgreSQLQueryBuilder
|
||||
|
||||
@classmethod
|
||||
def _builder(cls, *args, **kwargs) -> "PostgreSQLQueryBuilder":
|
||||
return super()._builder(*args, wrapper_cls=ParameterizedValueWrapper, **kwargs)
|
||||
|
|
|
|||
|
|
@ -112,8 +112,7 @@ def patch_query_execute():
|
|||
raise frappe.PermissionError("Only SELECT SQL allowed in scripting")
|
||||
return query, param_collector.get_parameters()
|
||||
|
||||
query_class = get_attr(str(frappe.qb).split("'")[1])
|
||||
builder_class = get_type_hints(query_class._builder).get("return")
|
||||
builder_class = frappe.qb._BuilderClasss
|
||||
|
||||
if not builder_class:
|
||||
raise BuilderIdentificationFailed
|
||||
|
|
|
|||
|
|
@ -373,11 +373,3 @@ class TestMisc(FrappeTestCase):
|
|||
|
||||
DocType = Table("DocType")
|
||||
self.assertEqual(DocType.get_sql(), "DocType")
|
||||
|
||||
def test_error_on_query_class(self):
|
||||
import frappe.query_builder.utils
|
||||
|
||||
frappe.query_builder.utils.get_type_hints = lambda x: {"return": None}
|
||||
|
||||
with self.assertRaises(frappe.query_builder.utils.BuilderIdentificationFailed):
|
||||
frappe.query_builder.utils.patch_query_execute()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue