From a25d127f368b7dfba1f697d34d27ee0b54a29df6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastien=20G=C3=A9rard?= Date: Tue, 4 Sep 2018 20:51:06 +0200 Subject: [PATCH] Remove DictField.basecls related code, it is useless --- mongoengine/fields.py | 9 ++------- tests/queryset/queryset.py | 27 --------------------------- 2 files changed, 2 insertions(+), 34 deletions(-) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index 6994b315..91604a16 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -945,14 +945,9 @@ class DictField(ComplexBaseField): .. versionchanged:: 0.5 - Can now handle complex / varying types of data """ - def __init__(self, basecls=None, field=None, *args, **kwargs): + def __init__(self, field=None, *args, **kwargs): self.field = field self._auto_dereference = False - self.basecls = basecls or BaseField - - # XXX ValidationError raised outside of the "validate" method. - if not issubclass(self.basecls, BaseField): - self.error('DictField only accepts dict values') kwargs.setdefault('default', lambda: {}) super(DictField, self).__init__(*args, **kwargs) @@ -972,7 +967,7 @@ class DictField(ComplexBaseField): super(DictField, self).validate(value) def lookup_member(self, member_name): - return DictField(basecls=self.basecls, db_field=member_name) + return DictField(db_field=member_name) def prepare_query_value(self, op, value): match_operators = ['contains', 'icontains', 'startswith', diff --git a/tests/queryset/queryset.py b/tests/queryset/queryset.py index 77308c26..c6aa3594 100644 --- a/tests/queryset/queryset.py +++ b/tests/queryset/queryset.py @@ -3618,33 +3618,6 @@ class QuerySetTest(unittest.TestCase): Group.drop_collection() - def test_dict_with_custom_baseclass(self): - """Ensure DictField working with custom base clases. - """ - class Test(Document): - testdict = DictField() - - Test.drop_collection() - - t = Test(testdict={'f': 'Value'}) - t.save() - - self.assertEqual( - Test.objects(testdict__f__startswith='Val').count(), 1) - self.assertEqual(Test.objects(testdict__f='Value').count(), 1) - Test.drop_collection() - - class Test(Document): - testdict = DictField(basecls=StringField) - - t = Test(testdict={'f': 'Value'}) - t.save() - - self.assertEqual(Test.objects(testdict__f='Value').count(), 1) - self.assertEqual( - Test.objects(testdict__f__startswith='Val').count(), 1) - Test.drop_collection() - def test_bulk(self): """Ensure bulk querying by object id returns a proper dict. """