Skip to content
Snippets Groups Projects
test_tasks.py 750 B
Newer Older
import pytest

from funkwhale_api.taskapp import celery


class Dummy:
    @staticmethod
    def noop(instance):
        pass


def test_require_instance_decorator(factories, mocker):
Eliot Berriot's avatar
Eliot Berriot committed
    user = factories["users.User"]()
Eliot Berriot's avatar
Eliot Berriot committed
    @celery.require_instance(user.__class__, "user")
Eliot Berriot's avatar
Eliot Berriot committed
    m = mocker.patch.object(Dummy, "noop")
    t(user_id=user.pk)

    m.assert_called_once_with(user)


def test_require_instance_decorator_accepts_qs(factories, mocker):
Eliot Berriot's avatar
Eliot Berriot committed
    user = factories["users.User"](is_active=False)
    qs = user.__class__.objects.filter(is_active=True)

Eliot Berriot's avatar
Eliot Berriot committed
    @celery.require_instance(qs, "user")
Eliot Berriot's avatar
Eliot Berriot committed

    with pytest.raises(user.__class__.DoesNotExist):
        t(user_id=user.pk)