From ff1f8ddbdaa9dbb0f57adbe836c959fd090e5873 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Wed, 27 Mar 2024 12:01:15 +0530 Subject: [PATCH] fix: allow any sequence container (#25664) --- frappe/model/db_query.py | 3 ++- frappe/tests/test_db_query.py | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index 753cd22f9d..ffe5dbcb70 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -7,6 +7,7 @@ import datetime import json import re from collections import Counter +from collections.abc import Sequence import frappe import frappe.defaults @@ -133,7 +134,7 @@ class DatabaseQuery: limit_page_length = page_length if limit: limit_page_length = limit - if as_list and not isinstance(self.fields, (list | tuple)) and len(self.fields) > 1: + if as_list and not isinstance(self.fields, (Sequence | str)) and len(self.fields) > 1: frappe.throw(_("Fields must be a list or tuple when as_list is enabled")) self.filters = filters or [] diff --git a/frappe/tests/test_db_query.py b/frappe/tests/test_db_query.py index 51df9d8983..4376a882a9 100644 --- a/frappe/tests/test_db_query.py +++ b/frappe/tests/test_db_query.py @@ -268,6 +268,11 @@ class TestDBQuery(FrappeTestCase): result in DatabaseQuery("DocType").execute(filters={"name": ["not in", "DocType,DocField"]}) ) + def test_string_as_field(self): + self.assertEqual( + frappe.get_all("DocType", as_list=True), frappe.get_all("DocType", fields="name", as_list=True) + ) + def test_none_filter(self): query = frappe.qb.get_query("DocType", fields="name", filters={"restrict_to_domain": None}) sql = str(query).replace("`", "").replace('"', "")