Fix small test fails introduced in the commit 27f12f7

remotes/origin/enhancement/email-actions
Jesús Espino 2014-10-02 01:44:48 +02:00
parent 27f12f7be9
commit 7c5b85ea5c
2 changed files with 19 additions and 5 deletions

View File

@ -54,6 +54,10 @@ class MembersFilterBackend(BaseFilterBackend):
return queryset.filter(Q(memberships__project=project) | Q(id=project.owner.id)).distinct() return queryset.filter(Q(memberships__project=project) | Q(id=project.owner.id)).distinct()
else: else:
raise exc.PermissionDenied(_("You don't have permisions to see this project users.")) raise exc.PermissionDenied(_("You don't have permisions to see this project users."))
if request.user.is_superuser:
return queryset
return [] return []
@ -61,11 +65,21 @@ class UsersViewSet(ModelCrudViewSet):
permission_classes = (permissions.UserPermission,) permission_classes = (permissions.UserPermission,)
serializer_class = serializers.UserSerializer serializer_class = serializers.UserSerializer
queryset = models.User.objects.all() queryset = models.User.objects.all()
filter_backends = (MembersFilterBackend,)
def create(self, *args, **kwargs): def create(self, *args, **kwargs):
raise exc.NotSupported() raise exc.NotSupported()
def list(self, request, *args, **kwargs):
self.object_list = MembersFilterBackend().filter_queryset(request, self.get_queryset(), self)
page = self.paginate_queryset(self.object_list)
if page is not None:
serializer = self.get_pagination_serializer(page)
else:
serializer = self.get_serializer(self.object_list, many=True)
return Response(serializer.data)
@list_route(methods=["POST"]) @list_route(methods=["POST"])
def password_recovery(self, request, pk=None): def password_recovery(self, request, pk=None):
username_or_email = request.DATA.get('username', None) username_or_email = request.DATA.get('username', None)

View File

@ -44,7 +44,7 @@ def test_user_retrieve(client, data):
] ]
results = helper_test_http_method(client, 'get', url, None, users) results = helper_test_http_method(client, 'get', url, None, users)
assert results == [200, 200, 200, 200] assert results == [401, 200, 403, 200]
def test_user_update(client, data): def test_user_update(client, data):
@ -82,21 +82,21 @@ def test_user_list(client, data):
response = client.get(url) response = client.get(url)
users_data = json.loads(response.content.decode('utf-8')) users_data = json.loads(response.content.decode('utf-8'))
assert len(users_data) == 3 assert len(users_data) == 0
assert response.status_code == 200 assert response.status_code == 200
client.login(data.registered_user) client.login(data.registered_user)
response = client.get(url) response = client.get(url)
users_data = json.loads(response.content.decode('utf-8')) users_data = json.loads(response.content.decode('utf-8'))
assert len(users_data) == 3 assert len(users_data) == 0
assert response.status_code == 200 assert response.status_code == 200
client.login(data.other_user) client.login(data.other_user)
response = client.get(url) response = client.get(url)
users_data = json.loads(response.content.decode('utf-8')) users_data = json.loads(response.content.decode('utf-8'))
assert len(users_data) == 3 assert len(users_data) == 0
assert response.status_code == 200 assert response.status_code == 200
client.login(data.superuser) client.login(data.superuser)