Esempio n. 1
0
def test_create_tag_radio(factories):
    tag = factories["tags.Tag"]()

    data = {"radio_type": "tag", "related_object_id": tag.name}

    serializer = serializers.RadioSessionSerializer(data=data)
    assert serializer.is_valid(raise_exception=True) is True

    session = serializer.save()

    assert session.related_object_id == tag.pk
    assert session.related_object == tag
Esempio n. 2
0
def test_create_artist_radio(factories):
    artist = factories["music.Artist"]()

    data = {"radio_type": "artist", "related_object_id": artist.pk}

    serializer = serializers.RadioSessionSerializer(data=data)
    assert serializer.is_valid(raise_exception=True) is True

    session = serializer.save()

    assert session.related_object_id == artist.pk
    assert session.related_object == artist
Esempio n. 3
0
def test_tag_radio_repr(factories, to_api_date):
    tag = factories["tags.Tag"]()
    session = factories["radios.RadioSession"](related_object=tag, radio_type="tag")

    expected = {
        "id": session.pk,
        "radio_type": "tag",
        "custom_radio": None,
        "user": session.user.pk,
        "related_object_id": tag.name,
        "creation_date": to_api_date(session.creation_date),
    }
    assert serializers.RadioSessionSerializer(session).data == expected
Esempio n. 4
0
def test_cannot_start_custom_radio_if_not_owner_or_not_public(factories):
    user = factories["users.User"]()
    artist = factories["music.Artist"]()
    radio = factories["radios.Radio"](config=[{
        "type": "artist",
        "ids": [artist.pk]
    }])
    serializer = serializers.RadioSessionSerializer(data={
        "radio_type": "custom",
        "custom_radio": radio.pk,
        "user": user.pk
    })
    message = "You don't have access to this radio"
    assert not serializer.is_valid()
    assert message in serializer.errors["non_field_errors"]