def test_pk_related_lookup_does_not_exist(self):
     oid = ObjectId()
     field = ReferenceField(ReferencedModel)
     with pytest.raises(ValidationError) as excinfo:
         field.to_internal_value(oid)
     msg = excinfo.value.detail[0]
     assert msg == 'Invalid id "%s" - object does not exist.' % oid
 def test_pk_related_lookup_does_not_exist(self):
     oid = ObjectId()
     field = ReferenceField(ReferencedModel)
     with pytest.raises(ValidationError) as excinfo:
         field.to_internal_value(oid)
     msg = excinfo.value.detail[0]
     assert msg == 'Invalid id "%s" - object does not exist.' % oid
 def test_input_other(self):
     field = ReferenceField(OtherReferencedDoc)
     instance = OtherReferencedDoc.objects.create(name="foo")
     ref = instance.to_dbref()
     assert field.to_internal_value(str(instance.id)) == ref
     assert field.to_internal_value({'_id': str(instance.id)}) == ref
 def test_input_other(self):
     field = ReferenceField(OtherReferencedDoc)
     instance = OtherReferencedDoc.objects.create(name="foo")
     ref = instance.to_dbref()
     assert field.to_internal_value(str(instance.id)) == ref
     assert field.to_internal_value({'_id': str(instance.id)}) == ref
 def test_pk_related_lookup_invalid_type(self):
     field = ReferenceField(ReferencedModel)
     with pytest.raises(ValidationError) as excinfo:
         field.to_internal_value(BadType())
     msg = excinfo.value.detail[0]
     assert msg == 'Incorrect type. Expected str|ObjectId|DBRef|Document value, received BadType.'
 def test_pk_related_lookup_exists(self):
     field = ReferenceField(ReferencedModel)
     instance = field.to_internal_value(self.instance.id)
     assert instance == self.instance.to_dbref()
 def test_input(self):
     field = ReferenceField(ReferencedModel)
     instance = ReferencedModel.objects.create(name="foo")
     ref = instance.to_dbref()
     assert field.to_internal_value(str(instance.id)) == ref
     assert field.to_internal_value({'_id': str(instance.id)}) == ref
 def test_pk_related_lookup_invalid_type(self):
     field = ReferenceField(ReferencedModel)
     with pytest.raises(ValidationError) as excinfo:
         field.to_internal_value(BadType())
     msg = excinfo.value.detail[0]
     assert msg == 'Incorrect type. Expected str|ObjectId|DBRef|Document value, received BadType.'
 def test_pk_related_lookup_exists(self):
     field = ReferenceField(ReferencedModel)
     instance = field.to_internal_value(self.instance.id)
     assert instance == self.instance.to_dbref()