Beispiel #1
0
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")
Beispiel #2
0
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")
Beispiel #3
0
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")
Beispiel #4
0
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")
Beispiel #5
0
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")
Beispiel #6
0
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")
Beispiel #7
0
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
Beispiel #8
0
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([]) == []
Beispiel #9
0
def test_relationship_descriptor_get_on_class():
    relation = Relationship()
    relation.contribute_to_class(EmptyClass, "relation")
    assert isinstance(EmptyClass.relation, RelationshipDescriptor)
    delattr(EmptyClass, "relation")