Przeglądaj źródła

[hotfix] fixes for AttributeError: 'NoneType' object has no attribute 'split' (#3840)

* [hotfix] fixes for AttributeError: 'NoneType' object has no attribute 'split'

* [tests] added test cases for not in and in filters
version-14
Makarand Bauskar 8 lat temu
committed by GitHub
rodzic
commit
fc715efdbb
2 zmienionych plików z 14 dodań i 1 usunięć
  1. +1
    -1
      frappe/model/db_query.py
  2. +13
    -0
      frappe/tests/test_db_query.py

+ 1
- 1
frappe/model/db_query.py Wyświetl plik

@@ -291,7 +291,7 @@ class DatabaseQuery(object):

# prepare in condition
if f.operator.lower() in ('in', 'not in'):
values = f.value
values = f.value or ''
if not isinstance(values, (list, tuple)):
values = values.split(",")



+ 13
- 0
frappe/tests/test_db_query.py Wyświetl plik

@@ -31,6 +31,19 @@ class TestReportview(unittest.TestCase):
self.assertTrue({"name":"DocField"} \
in DatabaseQuery("DocType").execute(filters={"name": "DocField"}))

def test_in_not_in_filters(self):
self.assertFalse(DatabaseQuery("DocType").execute(filters={"name": ["in", None]}))
self.assertTrue({"name":"DocType"} \
in DatabaseQuery("DocType").execute(filters={"name": ["not in", None]}))

for result in [{"name":"DocType"}, {"name":"DocField"}]:
self.assertTrue(result
in DatabaseQuery("DocType").execute(filters={"name": ["in", 'DocType,DocField']}))

for result in [{"name":"DocType"}, {"name":"DocField"}]:
self.assertFalse(result
in DatabaseQuery("DocType").execute(filters={"name": ["not in", 'DocType,DocField']}))

def test_or_filters(self):
data = DatabaseQuery("DocField").execute(
filters={"parent": "DocType"}, fields=["fieldname", "fieldtype"],


Ładowanie…
Anuluj
Zapisz