def test_relationship_descriptor_get_from_cache(): relation = Relationship() relation.contribute_to_class(EmptyClass, "relation") instance = EmptyClass() setattr(instance, "_relation_cache", "Cached Value") assert instance.relation == "Cached Value" delattr(EmptyClass, "relation")
def test_relationship_contribute_to_class(): relation = Relationship() relation.contribute_to_class(EmptyClass, "relation") assert hasattr(EmptyClass, "relation") assert isinstance(EmptyClass.relation, RelationshipDescriptor) assert relation.name == "relation" assert relation.model == EmptyClass delattr(EmptyClass, "relation")
def test_relationship_descriptor_single_get_refresh_from_api(): relation = Relationship(many=False) relation.contribute_to_class(EmptyClass, "relation") instance = EmptyClass() instance.refresh_from_api = mock.Mock() instance.relation instance.refresh_from_api.assert_called_once() delattr(EmptyClass, "relation")
def test_relationship_descriptor_many_set(): relation = Relationship(many=True) relation.contribute_to_class(EmptyClass, "relation") instance = EmptyClass() # Identifier identifiers = [{"id": "12", "type": "tests"}] instance.relation = identifiers assert instance.relation_identifiers == identifiers instance.relation = [Dummy(pk=12)] assert instance.relation_identifiers == identifiers delattr(EmptyClass, "relation")
def test_relationship_descriptor_single_get(): relation = Relationship(many=False) relation.contribute_to_class(EmptyClass, "relation") with mock.patch("django_json_api.fields.get_model") as get_model: instance = EmptyClass() instance.relation_identifier = {"id": "42", "type": "tests"} assert instance.relation == get_model.return_value.objects.get.return_value get_model.assert_called_once_with("tests") get_model.return_value.objects.get.assert_called_once_with(pk="42") assert hasattr(instance, "_relation_cache") delattr(EmptyClass, "relation")
def test_relationship_descriptor_single_set(): relation = Relationship(many=False) relation.contribute_to_class(EmptyClass, "relation") instance = EmptyClass() # Identifier identifier = {"id": "12", "type": "tests"} instance.relation = identifier assert instance.relation_identifier == identifier instance.relation = Dummy(pk=12) assert instance.relation_identifier == identifier delattr(EmptyClass, "relation")
def test_relationship_single_clean(): relation = Relationship(many=False) raw = {"id": "12", "type": "tests"} assert relation.clean(raw) == raw assert relation.clean([raw]) == raw assert relation.clean(None) is None assert relation.clean("anything") is None assert relation.clean(["anything"]) is None
def test_relationship_many_clean(): relation = Relationship(many=True) raw = [ { "id": "12", "type": "tests" }, {}, { "id": "42", "type": "tests" }, ] assert relation.clean(raw) == [{ "id": "12", "type": "tests" }, { "id": "42", "type": "tests" }] assert relation.clean(None) is None assert relation.clean([]) == []
def test_relationship_descriptor_get_on_class(): relation = Relationship() relation.contribute_to_class(EmptyClass, "relation") assert isinstance(EmptyClass.relation, RelationshipDescriptor) delattr(EmptyClass, "relation")