Sfoglia il codice sorgente

[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 anni fa
committed by GitHub
parent
commit
fc715efdbb
2 ha cambiato i file con 14 aggiunte e 1 eliminazioni
  1. +1
    -1
      frappe/model/db_query.py
  2. +13
    -0
      frappe/tests/test_db_query.py

+ 1
- 1
frappe/model/db_query.py Vedi File

@@ -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 Vedi File

@@ -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"],


Caricamento…
Annulla
Salva