diff --git a/frappe/tests/test_db_query.py b/frappe/tests/test_db_query.py index 8bdd66a045..c1ff1a1a15 100644 --- a/frappe/tests/test_db_query.py +++ b/frappe/tests/test_db_query.py @@ -639,23 +639,53 @@ class TestReportview(unittest.TestCase): def test_fieldname_starting_with_int(self): from frappe.core.doctype.doctype.test_doctype import new_doctype + frappe.delete_doc_if_exists("DocType", "dt_with_int_named_fieldname") + frappe.delete_doc_if_exists("DocType", "table_dt") + + table_dt = new_doctype( + "table_dt", istable=1, fields=[{"label": "1field", "fieldname": "2field", "fieldtype": "Data"}] + ).insert() + dt = new_doctype( "dt_with_int_named_fieldname", - fields=[{"label": "1field", "fieldname": "1field", "fieldtype": "Int"}], + fields=[ + {"label": "1field", "fieldname": "1field", "fieldtype": "Data"}, + { + "label": "2table_field", + "fieldname": "2table_field", + "fieldtype": "Table", + "options": table_dt.name, + }, + ], ).insert(ignore_permissions=True) - frappe.get_doc({"doctype": "dt_with_int_named_fieldname", "1field": 10}).insert( + dt_data = frappe.get_doc({"doctype": "dt_with_int_named_fieldname", "1field": "10"}).insert( ignore_permissions=True ) query = DatabaseQuery("dt_with_int_named_fieldname") - self.assertTrue(query.execute(filters={"1field": 10})) + self.assertTrue(query.execute(filters={"1field": "10"})) self.assertTrue(query.execute(filters={"1field": ["like", "1%"]})) self.assertTrue(query.execute(filters={"1field": ["in", "1,2,10"]})) self.assertTrue(query.execute(filters={"1field": ["is", "set"]})) self.assertFalse(query.execute(filters={"1field": ["not like", "1%"]})) + self.assertTrue(query.execute(filters=[["table_dt", "2field", "is", "not set"]])) + + frappe.get_doc( + { + "doctype": table_dt.name, + "2field": "10", + "parent": dt_data.name, + "parenttype": dt_data.doctype, + "parentfield": "2table_field", + } + ).insert(ignore_permissions=True) + + self.assertTrue(query.execute(filters=[["table_dt", "2field", "is", "set"]])) + # cleanup dt.delete() + table_dt.delete() def add_child_table_to_blog_post():