fix-#734: set attribute to None does not work (at least for fields with default values). Solves #735 as well

This commit is contained in:
DavidBord
2014-08-17 13:57:48 +03:00
parent 201b12a886
commit bdbd495a9e
3 changed files with 33 additions and 5 deletions

View File

@@ -2706,5 +2706,26 @@ class InstanceTest(unittest.TestCase):
self.assertEquals(p4.height, 189)
self.assertEquals(Person.objects(height=189).count(), 1)
def test_null_field(self):
# 734
class User(Document):
name = StringField()
height = IntField(default=184, null=True)
User.objects.delete()
u = User(name='user')
u.save()
u_from_db = User.objects.get(name='user')
u_from_db.height = None
u_from_db.save()
self.assertEquals(u_from_db.height, None)
# 735
User.objects.delete()
u = User(name='user')
u.save()
User.objects(name='user').update_one(set__height=None, upsert=True)
u_from_db = User.objects.get(name='user')
self.assertEquals(u_from_db.height, None)
if __name__ == '__main__':
unittest.main()