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