Skip to content
Snippets Groups Projects
test_scripts.py 1.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • import pytest
    
    from funkwhale_api.common.management.commands import script
    from funkwhale_api.common import scripts
    
    
    @pytest.fixture
    def command():
        return script.Command()
    
    
    @pytest.mark.parametrize('script_name', [
        'django_permissions_to_user_permissions',
        'test',
    ])
    def test_script_command_list(command, script_name, mocker):
        mocked = mocker.patch(
            'funkwhale_api.common.scripts.{}.main'.format(script_name))
    
        command.handle(script_name=script_name, interactive=False)
    
        mocked.assert_called_once_with(
            command, script_name=script_name, interactive=False)
    
    
    def test_django_permissions_to_user_permissions(factories, command):
        group = factories['auth.Group'](
            perms=[
                'federation.change_library'
            ]
        )
        user1 = factories['users.User'](
            perms=[
                'dynamic_preferences.change_globalpreferencemodel',
                'music.add_importbatch',
            ]
        )
        user2 = factories['users.User'](
            perms=[
                'music.add_importbatch',
            ],
            groups=[group]
        )
    
        scripts.django_permissions_to_user_permissions.main(command)
    
        user1.refresh_from_db()
        user2.refresh_from_db()
    
        assert user1.permission_settings is True
        assert user1.permission_library is True
        assert user1.permission_federation is False
    
        assert user2.permission_settings is False
        assert user2.permission_library is True
        assert user2.permission_federation is True