|
|
@@ -14,7 +14,7 @@ from frappe.database.database import Database |
|
|
|
from frappe.query_builder import Field |
|
|
|
from frappe.query_builder.functions import Concat_ws |
|
|
|
from frappe.tests.test_query_builder import db_type_is, run_only_if |
|
|
|
from frappe.utils import add_days, now, random_string |
|
|
|
from frappe.utils import add_days, now, random_string, cint |
|
|
|
from frappe.utils.testutils import clear_custom_fields |
|
|
|
|
|
|
|
|
|
|
@@ -84,6 +84,27 @@ class TestDB(unittest.TestCase): |
|
|
|
), |
|
|
|
) |
|
|
|
|
|
|
|
def test_get_value_limits(self): |
|
|
|
|
|
|
|
# check both dict and list style filters |
|
|
|
filters = [{"enabled": 1}, [["enabled", "=", 1]]] |
|
|
|
for filter in filters: |
|
|
|
self.assertEqual(1, len(frappe.db.get_values("User", filters=filter, limit=1))) |
|
|
|
# count of last touched rows as per DB-API 2.0 https://peps.python.org/pep-0249/#rowcount |
|
|
|
self.assertGreaterEqual(1, cint(frappe.db._cursor.rowcount)) |
|
|
|
self.assertEqual(2, len(frappe.db.get_values("User", filters=filter, limit=2))) |
|
|
|
self.assertGreaterEqual(2, cint(frappe.db._cursor.rowcount)) |
|
|
|
|
|
|
|
# without limits length == count |
|
|
|
self.assertEqual(len(frappe.db.get_values("User", filters=filter)), |
|
|
|
frappe.db.count("User", filter)) |
|
|
|
|
|
|
|
frappe.db.get_value("User", filters=filter) |
|
|
|
self.assertGreaterEqual(1, cint(frappe.db._cursor.rowcount)) |
|
|
|
|
|
|
|
frappe.db.exists("User", filter) |
|
|
|
self.assertGreaterEqual(1, cint(frappe.db._cursor.rowcount)) |
|
|
|
|
|
|
|
def test_escape(self): |
|
|
|
frappe.db.escape("香港濟生堂製藥有限公司 - IT".encode("utf-8")) |
|
|
|
|
|
|
|