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_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