Skip to content
Snippets Groups Projects
test_tasks.py 749 B
Newer Older
  • Learn to ignore specific revisions
  • 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)