From 1978dc80eb65025290d81e79a46222bc4ea54696 Mon Sep 17 00:00:00 2001 From: Loic Raucy Date: Thu, 17 Oct 2013 16:26:19 +0200 Subject: [PATCH] Added regression test for bug with DictField and numeric keys. When a DictField has numeric fields, BaseDocument._lookup_field doesn't work correclty. --- tests/queryset/queryset.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/queryset/queryset.py b/tests/queryset/queryset.py index b4bcf2a7..73178cca 100644 --- a/tests/queryset/queryset.py +++ b/tests/queryset/queryset.py @@ -3367,6 +3367,17 @@ class QuerySetTest(unittest.TestCase): self.assertEqual(1, MyDoc.objects.update_one(upsert=True, inc__47=1)) self.assertEqual(MyDoc.objects.get()['47'], 1) + def test_dictfield_key_looks_like_a_digit(self): + """Only should work with DictField even if they have numeric keys.""" + + class MyDoc(Document): + test = DictField() + + MyDoc.drop_collection() + doc = MyDoc(test={'47': 1}) + doc.save() + self.assertEqual(MyDoc.objects.only('test__47').get().test['47'], 1) + def test_read_preference(self): class Bar(Document): pass