funkwhale/api/tests/common/test_scripts.py

45 wiersze
1.3 KiB
Python

import pytest
from funkwhale_api.common import scripts
from funkwhale_api.common.management.commands import script
@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