Skip to content
Snippets Groups Projects
test_views.py 1.54 KiB
Newer Older
  • Learn to ignore specific revisions
  • import pytest
    from django.urls import reverse
    
    
    Eliot Berriot's avatar
    Eliot Berriot committed
    from funkwhale_api.manage import serializers, views
    
    Eliot Berriot's avatar
    Eliot Berriot committed
    @pytest.mark.parametrize(
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        "view,permissions,operator",
        [
            (views.ManageTrackFileViewSet, ["library"], "and"),
            (views.ManageUserViewSet, ["settings"], "and"),
        ],
    
    Eliot Berriot's avatar
    Eliot Berriot committed
    )
    
    def test_permissions(assert_user_permission, view, permissions, operator):
        assert_user_permission(view, permissions, operator)
    
    
    def test_track_file_view(factories, superuser_api_client):
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        tfs = factories["music.TrackFile"].create_batch(size=5)
        qs = tfs[0].__class__.objects.order_by("-creation_date")
        url = reverse("api:v1:manage:library:track-files-list")
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        response = superuser_api_client.get(url, {"sort": "-creation_date"})
    
        expected = serializers.ManageTrackFileSerializer(
    
    Eliot Berriot's avatar
    Eliot Berriot committed
            qs, many=True, context={"request": response.wsgi_request}
        ).data
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        assert response.data["count"] == len(tfs)
        assert response.data["results"] == expected
    
    Eliot Berriot's avatar
    Eliot Berriot committed
    
    
    def test_user_view(factories, superuser_api_client, mocker):
        mocker.patch("funkwhale_api.users.models.User.record_activity")
        users = factories["users.User"].create_batch(size=5) + [superuser_api_client.user]
        qs = users[0].__class__.objects.order_by("-id")
        url = reverse("api:v1:manage:users:users-list")
    
        response = superuser_api_client.get(url, {"sort": "-id"})
        expected = serializers.ManageUserSerializer(
            qs, many=True, context={"request": response.wsgi_request}
        ).data
    
        assert response.data["count"] == len(users)
        assert response.data["results"] == expected