Improve coverage in fields test

This commit is contained in:
Bastien Gérard 2019-05-16 22:31:24 +02:00
parent c82f0c937d
commit bb1089e03d
4 changed files with 35 additions and 6 deletions

View File

@ -208,10 +208,7 @@ class TestCachedReferenceField(MongoDBTestCase):
('pj', "PJ") ('pj', "PJ")
) )
name = StringField() name = StringField()
tp = StringField( tp = StringField(choices=TYPES)
choices=TYPES
)
father = CachedReferenceField('self', fields=('tp',)) father = CachedReferenceField('self', fields=('tp',))
Person.drop_collection() Person.drop_collection()
@ -222,6 +219,9 @@ class TestCachedReferenceField(MongoDBTestCase):
a2 = Person(name='Wilson Junior', tp='pf', father=a1) a2 = Person(name='Wilson Junior', tp='pf', father=a1)
a2.save() a2.save()
a2 = Person.objects.with_id(a2.id)
self.assertEqual(a2.father.tp, a1.tp)
self.assertEqual(dict(a2.to_mongo()), { self.assertEqual(dict(a2.to_mongo()), {
"_id": a2.pk, "_id": a2.pk,
"name": u"Wilson Junior", "name": u"Wilson Junior",
@ -374,6 +374,9 @@ class TestCachedReferenceField(MongoDBTestCase):
self.assertEqual(o.to_mongo()['animal']['tag'], 'heavy') self.assertEqual(o.to_mongo()['animal']['tag'], 'heavy')
self.assertEqual(o.to_mongo()['animal']['owner']['t'], 'u') self.assertEqual(o.to_mongo()['animal']['owner']['t'], 'u')
# Check to_mongo with fields
self.assertNotIn('animal', o.to_mongo(fields=['person']))
# counts # counts
Ocorrence(person="teste 2").save() Ocorrence(person="teste 2").save()
Ocorrence(person="teste 3").save() Ocorrence(person="teste 3").save()

View File

@ -172,6 +172,9 @@ class TestDateTimeField(MongoDBTestCase):
log.time = datetime.datetime.now().isoformat(' ') log.time = datetime.datetime.now().isoformat(' ')
log.validate() log.validate()
log.time = '2019-05-16 21:42:57.897847'
log.validate()
if dateutil: if dateutil:
log.time = datetime.datetime.now().isoformat('T') log.time = datetime.datetime.now().isoformat('T')
log.validate() log.validate()
@ -180,6 +183,12 @@ class TestDateTimeField(MongoDBTestCase):
self.assertRaises(ValidationError, log.validate) self.assertRaises(ValidationError, log.validate)
log.time = 'ABC' log.time = 'ABC'
self.assertRaises(ValidationError, log.validate) self.assertRaises(ValidationError, log.validate)
log.time = '2019-05-16 21:GARBAGE:12'
self.assertRaises(ValidationError, log.validate)
log.time = '2019-05-16 21:42:57.GARBAGE'
self.assertRaises(ValidationError, log.validate)
log.time = '2019-05-16 21:42:57.123.456'
self.assertRaises(ValidationError, log.validate)
class TestDateTimeTzAware(MongoDBTestCase): class TestDateTimeTzAware(MongoDBTestCase):

View File

@ -508,6 +508,23 @@ class TestGenericLazyReferenceField(MongoDBTestCase):
p = Ocurrence.objects.get() p = Ocurrence.objects.get()
self.assertIs(p.animal, None) self.assertIs(p.animal, None)
def test_generic_lazy_reference_accepts_string_instead_of_class(self):
class Animal(Document):
name = StringField()
tag = StringField()
class Ocurrence(Document):
person = StringField()
animal = GenericLazyReferenceField('Animal')
Animal.drop_collection()
Ocurrence.drop_collection()
animal = Animal().save()
Ocurrence(animal=animal).save()
p = Ocurrence.objects.get()
self.assertEqual(p.animal, animal)
def test_generic_lazy_reference_embedded(self): def test_generic_lazy_reference_embedded(self):
class Animal(Document): class Animal(Document):
name = StringField() name = StringField()

View File

@ -39,9 +39,9 @@ class TestLongField(MongoDBTestCase):
doc.value = -1 doc.value = -1
self.assertRaises(ValidationError, doc.validate) self.assertRaises(ValidationError, doc.validate)
doc.age = 120 doc.value = 120
self.assertRaises(ValidationError, doc.validate) self.assertRaises(ValidationError, doc.validate)
doc.age = 'ten' doc.value = 'ten'
self.assertRaises(ValidationError, doc.validate) self.assertRaises(ValidationError, doc.validate)
def test_long_ne_operator(self): def test_long_ne_operator(self):