test: use data fieldtype instead of int in test_fieldname_starting_with_int (#16771)

* fix(test): use data fieldtype instead of int

postgres doesn't allow using like operator on int/any non-text/varchar column
ref: https://github.com/frappe/frappe/issues/16722

* minor: updated test_fieldname_starting_with_int with child table filters
This commit is contained in:
Ritwik Puri 2022-04-28 13:46:09 +05:30 committed by GitHub
parent 926ceb3b25
commit d1423f1517
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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():