Blacked the code

This commit is contained in:
Eliot Berriot 2018-06-09 15:36:16 +02:00
commit 62ca3bd736
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
279 changed files with 8890 additions and 9556 deletions

View file

@ -7,11 +7,16 @@ from funkwhale_api.common import fields
from funkwhale_api.users.factories import UserFactory
@pytest.mark.parametrize('user,expected', [
(AnonymousUser(), Q(privacy_level='everyone')),
(UserFactory.build(pk=1),
Q(privacy_level__in=['followers', 'instance', 'everyone'])),
])
def test_privacy_level_query(user,expected):
@pytest.mark.parametrize(
"user,expected",
[
(AnonymousUser(), Q(privacy_level="everyone")),
(
UserFactory.build(pk=1),
Q(privacy_level__in=["followers", "instance", "everyone"]),
),
],
)
def test_privacy_level_query(user, expected):
query = fields.privacy_level_query(user)
assert query == expected

View file

@ -8,36 +8,36 @@ from funkwhale_api.common import permissions
def test_owner_permission_owner_field_ok(nodb_factories, api_request):
playlist = nodb_factories['playlists.Playlist']()
playlist = nodb_factories["playlists.Playlist"]()
view = APIView.as_view()
permission = permissions.OwnerPermission()
request = api_request.get('/')
setattr(request, 'user', playlist.user)
request = api_request.get("/")
setattr(request, "user", playlist.user)
check = permission.has_object_permission(request, view, playlist)
assert check is True
def test_owner_permission_owner_field_not_ok(
anonymous_user, nodb_factories, api_request):
playlist = nodb_factories['playlists.Playlist']()
anonymous_user, nodb_factories, api_request
):
playlist = nodb_factories["playlists.Playlist"]()
view = APIView.as_view()
permission = permissions.OwnerPermission()
request = api_request.get('/')
setattr(request, 'user', anonymous_user)
request = api_request.get("/")
setattr(request, "user", anonymous_user)
with pytest.raises(Http404):
permission.has_object_permission(request, view, playlist)
def test_owner_permission_read_only(
anonymous_user, nodb_factories, api_request):
playlist = nodb_factories['playlists.Playlist']()
def test_owner_permission_read_only(anonymous_user, nodb_factories, api_request):
playlist = nodb_factories["playlists.Playlist"]()
view = APIView.as_view()
setattr(view, 'owner_checks', ['write'])
setattr(view, "owner_checks", ["write"])
permission = permissions.OwnerPermission()
request = api_request.get('/')
setattr(request, 'user', anonymous_user)
request = api_request.get("/")
setattr(request, "user", anonymous_user)
check = permission.has_object_permission(request, view, playlist)
assert check is True

View file

@ -6,39 +6,40 @@ from funkwhale_api.common import preferences as common_preferences
@pytest.fixture
def string_list_pref(preferences):
@global_preferences_registry.register
class P(common_preferences.StringListPreference):
default = ['hello']
section = 'test'
name = 'string_list'
default = ["hello"]
section = "test"
name = "string_list"
yield
del global_preferences_registry['test']['string_list']
del global_preferences_registry["test"]["string_list"]
@pytest.mark.parametrize('input,output', [
(['a', 'b', 'c'], 'a,b,c'),
(['a', 'c', 'b'], 'a,b,c'),
(('a', 'c', 'b'), 'a,b,c'),
([], None),
])
@pytest.mark.parametrize(
"input,output",
[
(["a", "b", "c"], "a,b,c"),
(["a", "c", "b"], "a,b,c"),
(("a", "c", "b"), "a,b,c"),
([], None),
],
)
def test_string_list_serializer_to_db(input, output):
s = common_preferences.StringListSerializer.to_db(input) == output
@pytest.mark.parametrize('input,output', [
('a,b,c', ['a', 'b', 'c'], ),
(None, []),
('', []),
])
@pytest.mark.parametrize(
"input,output", [("a,b,c", ["a", "b", "c"]), (None, []), ("", [])]
)
def test_string_list_serializer_to_python(input, output):
s = common_preferences.StringListSerializer.to_python(input) == output
def test_string_list_pref_default(string_list_pref, preferences):
assert preferences['test__string_list'] == ['hello']
assert preferences["test__string_list"] == ["hello"]
def test_string_list_pref_set(string_list_pref, preferences):
preferences['test__string_list'] = ['world', 'hello']
assert preferences['test__string_list'] == ['hello', 'world']
preferences["test__string_list"] = ["world", "hello"]
assert preferences["test__string_list"] == ["hello", "world"]

View file

@ -9,38 +9,26 @@ def command():
return script.Command()
@pytest.mark.parametrize('script_name', [
'django_permissions_to_user_permissions',
'test',
])
@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))
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)
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'](
group = factories["auth.Group"](perms=["federation.change_library"])
user1 = factories["users.User"](
perms=[
'federation.change_library'
"dynamic_preferences.change_globalpreferencemodel",
"music.add_importbatch",
]
)
user1 = factories['users.User'](
perms=[
'dynamic_preferences.change_globalpreferencemodel',
'music.add_importbatch',
]
)
user2 = factories['users.User'](
perms=[
'music.add_importbatch',
],
groups=[group]
)
user2 = factories["users.User"](perms=["music.add_importbatch"], groups=[group])
scripts.django_permissions_to_user_permissions.main(command)

View file

@ -7,20 +7,20 @@ from funkwhale_api.users import models
class TestActionFilterSet(django_filters.FilterSet):
class Meta:
model = models.User
fields = ['is_active']
fields = ["is_active"]
class TestSerializer(serializers.ActionSerializer):
actions = ['test']
actions = ["test"]
filterset_class = TestActionFilterSet
def handle_test(self, objects):
return {'hello': 'world'}
return {"hello": "world"}
class TestDangerousSerializer(serializers.ActionSerializer):
actions = ['test', 'test_dangerous']
dangerous_actions = ['test_dangerous']
actions = ["test", "test_dangerous"]
dangerous_actions = ["test_dangerous"]
def handle_test(self, objects):
pass
@ -30,107 +30,88 @@ class TestDangerousSerializer(serializers.ActionSerializer):
def test_action_serializer_validates_action():
data = {'objects': 'all', 'action': 'nope'}
data = {"objects": "all", "action": "nope"}
serializer = TestSerializer(data, queryset=models.User.objects.none())
assert serializer.is_valid() is False
assert 'action' in serializer.errors
assert "action" in serializer.errors
def test_action_serializer_validates_objects():
data = {'objects': 'nope', 'action': 'test'}
data = {"objects": "nope", "action": "test"}
serializer = TestSerializer(data, queryset=models.User.objects.none())
assert serializer.is_valid() is False
assert 'objects' in serializer.errors
assert "objects" in serializer.errors
def test_action_serializers_objects_clean_ids(factories):
user1 = factories['users.User']()
user2 = factories['users.User']()
user1 = factories["users.User"]()
user2 = factories["users.User"]()
data = {'objects': [user1.pk], 'action': 'test'}
data = {"objects": [user1.pk], "action": "test"}
serializer = TestSerializer(data, queryset=models.User.objects.all())
assert serializer.is_valid() is True
assert list(serializer.validated_data['objects']) == [user1]
assert list(serializer.validated_data["objects"]) == [user1]
def test_action_serializers_objects_clean_all(factories):
user1 = factories['users.User']()
user2 = factories['users.User']()
user1 = factories["users.User"]()
user2 = factories["users.User"]()
data = {'objects': 'all', 'action': 'test'}
data = {"objects": "all", "action": "test"}
serializer = TestSerializer(data, queryset=models.User.objects.all())
assert serializer.is_valid() is True
assert list(serializer.validated_data['objects']) == [user1, user2]
assert list(serializer.validated_data["objects"]) == [user1, user2]
def test_action_serializers_save(factories, mocker):
handler = mocker.spy(TestSerializer, 'handle_test')
user1 = factories['users.User']()
user2 = factories['users.User']()
handler = mocker.spy(TestSerializer, "handle_test")
user1 = factories["users.User"]()
user2 = factories["users.User"]()
data = {'objects': 'all', 'action': 'test'}
data = {"objects": "all", "action": "test"}
serializer = TestSerializer(data, queryset=models.User.objects.all())
assert serializer.is_valid() is True
result = serializer.save()
assert result == {
'updated': 2,
'action': 'test',
'result': {'hello': 'world'},
}
assert result == {"updated": 2, "action": "test", "result": {"hello": "world"}}
handler.assert_called_once()
def test_action_serializers_filterset(factories):
user1 = factories['users.User'](is_active=False)
user2 = factories['users.User'](is_active=True)
user1 = factories["users.User"](is_active=False)
user2 = factories["users.User"](is_active=True)
data = {
'objects': 'all',
'action': 'test',
'filters': {'is_active': True},
}
data = {"objects": "all", "action": "test", "filters": {"is_active": True}}
serializer = TestSerializer(data, queryset=models.User.objects.all())
assert serializer.is_valid() is True
assert list(serializer.validated_data['objects']) == [user2]
assert list(serializer.validated_data["objects"]) == [user2]
def test_action_serializers_validates_at_least_one_object():
data = {
'objects': 'all',
'action': 'test',
}
data = {"objects": "all", "action": "test"}
serializer = TestSerializer(data, queryset=models.User.objects.none())
assert serializer.is_valid() is False
assert 'non_field_errors' in serializer.errors
assert "non_field_errors" in serializer.errors
def test_dangerous_actions_refuses_all(factories):
factories['users.User']()
data = {
'objects': 'all',
'action': 'test_dangerous',
}
serializer = TestDangerousSerializer(
data, queryset=models.User.objects.all())
factories["users.User"]()
data = {"objects": "all", "action": "test_dangerous"}
serializer = TestDangerousSerializer(data, queryset=models.User.objects.all())
assert serializer.is_valid() is False
assert 'non_field_errors' in serializer.errors
assert "non_field_errors" in serializer.errors
def test_dangerous_actions_refuses_not_listed(factories):
factories['users.User']()
data = {
'objects': 'all',
'action': 'test',
}
serializer = TestDangerousSerializer(
data, queryset=models.User.objects.all())
factories["users.User"]()
data = {"objects": "all", "action": "test"}
serializer = TestDangerousSerializer(data, queryset=models.User.objects.all())
assert serializer.is_valid() is True

View file

@ -4,15 +4,14 @@ from funkwhale_api.common import session
def test_get_user_agent(settings):
settings.FUNKWHALE_URL = 'https://test.com'
'http.rb/3.0.0 (Mastodon/2.2.0; +https://mastodon.eliotberriot.com/)'
expected = 'python-requests (funkwhale/{}; +{})'.format(
funkwhale_api.__version__,
settings.FUNKWHALE_URL
settings.FUNKWHALE_URL = "https://test.com"
"http.rb/3.0.0 (Mastodon/2.2.0; +https://mastodon.eliotberriot.com/)"
expected = "python-requests (funkwhale/{}; +{})".format(
funkwhale_api.__version__, settings.FUNKWHALE_URL
)
assert session.get_user_agent() == expected
def test_get_session():
expected = session.get_user_agent()
assert session.get_session().headers['User-Agent'] == expected
assert session.get_session().headers["User-Agent"] == expected