import pytest from funkwhale_api.taskapp import celery class Dummy: @staticmethod def noop(instance): pass def test_require_instance_decorator(factories, mocker): user = factories['users.User']() @celery.require_instance(user.__class__, 'user') def t(user): Dummy.noop(user) 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): user = factories['users.User'](is_active=False) qs = user.__class__.objects.filter(is_active=True) @celery.require_instance(qs, 'user') def t(user): pass with pytest.raises(user.__class__.DoesNotExist): t(user_id=user.pk)