kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
48 wiersze
1.7 KiB
Python
48 wiersze
1.7 KiB
Python
import pytest
|
|
|
|
from funkwhale_api.audio import filters, models
|
|
|
|
|
|
def test_channel_filter_subscribed_true(factories, mocker, queryset_equal_list):
|
|
user = factories["users.User"](with_actor=True)
|
|
channel = factories["audio.Channel"]()
|
|
other_channel = factories["audio.Channel"]()
|
|
factories["audio.Subscription"](target=channel.actor, actor=user.actor)
|
|
factories["audio.Subscription"](target=other_channel.actor)
|
|
|
|
qs = models.Channel.objects.all()
|
|
filterset = filters.ChannelFilter(
|
|
{"subscribed": "true"}, request=mocker.Mock(user=user), queryset=qs
|
|
)
|
|
|
|
assert filterset.qs == [channel]
|
|
|
|
|
|
def test_channel_filter_subscribed_false(factories, mocker, queryset_equal_list):
|
|
user = factories["users.User"](with_actor=True)
|
|
channel = factories["audio.Channel"]()
|
|
other_channel = factories["audio.Channel"]()
|
|
factories["audio.Subscription"](target=channel.actor, actor=user.actor)
|
|
factories["audio.Subscription"](target=other_channel.actor)
|
|
|
|
qs = models.Channel.objects.all()
|
|
filterset = filters.ChannelFilter(
|
|
{"subscribed": "false"}, request=mocker.Mock(user=user), queryset=qs
|
|
)
|
|
|
|
assert filterset.qs == [other_channel]
|
|
|
|
|
|
@pytest.mark.parametrize("external, expected_index", [("true", 0), ("false", 1)])
|
|
def test_channel_filter_external(
|
|
external, expected_index, factories, mocker, queryset_equal_list
|
|
):
|
|
user = factories["users.User"](with_actor=True)
|
|
channels = [factories["audio.Channel"](external=True), factories["audio.Channel"]()]
|
|
qs = models.Channel.objects.all()
|
|
filterset = filters.ChannelFilter(
|
|
{"external": external}, request=mocker.Mock(user=user), queryset=qs
|
|
)
|
|
|
|
assert filterset.qs == [channels[expected_index]]
|