From 4296f03e8a406d3a776971f65638295d86f47b6c Mon Sep 17 00:00:00 2001 From: Andre Anjos <andre.dos.anjos@gmail.com> Date: Fri, 1 Jul 2016 12:01:34 +0200 Subject: [PATCH] [team] Add test for undeletable team --- beat/web/team/tests.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/beat/web/team/tests.py b/beat/web/team/tests.py index 3839dcfe7..1d12285ea 100644 --- a/beat/web/team/tests.py +++ b/beat/web/team/tests.py @@ -31,11 +31,15 @@ from rest_framework import status from rest_framework.test import APITestCase from django.contrib.auth.models import User +from django.conf import settings +import os +import shutil import simplejson as json from ..common.testutils import tearDownModule from .models import Team +from ..dataformats.models import DataFormat from .serializers import SimpleTeamSerializer @@ -57,6 +61,19 @@ class TeamTestCase(APITestCase): self.invalid_username = 'janedoe' + # object to test sharing/deletion + if os.path.exists(settings.DATAFORMATS_ROOT): + shutil.rmtree(settings.DATAFORMATS_ROOT) + + (dataformat, errors) = DataFormat.objects.create_dataformat( + author=self.johndoe, + name='data_format_shared_with_private_team', + ) + assert dataformat, errors + + dataformat.share(teams=[self.teamdoe_private]) + self.dataformat = dataformat + #---------------------------------------------------------- @@ -377,14 +394,31 @@ class TeamDeletionTestCase(TeamTestCase): options['owner_name'] = self.johndoe.username url = self.get_url(options) + self.assertEqual(self.teamdoe.total_shares(), 0) + response = self.client.delete(url, format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + def test_logged_in_user_own_team_shared(self): + self.client.login(username=self.johndoe.username, password=self.password) + + options = self.options + options['owner_name'] = self.johndoe.username + options['team_name'] = 'teamdoe_private' + url = self.get_url(options) + + self.assertEqual(self.teamdoe_private.total_shares(), 1) + + response = self.client.delete(url, format='json') + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + def test_logged_in_user_team_from_other(self): self.client.login(username=self.jackdoe, password=self.password) url = self.get_url(self.options) + self.assertEqual(self.teamdoe.total_shares(), 0) + response = self.client.delete(url, format='json') self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) @@ -396,6 +430,8 @@ class TeamDeletionTestCase(TeamTestCase): options['owner_name'] = self.invalid_username url = self.get_url(options) + self.assertEqual(self.teamdoe.total_shares(), 0) + response = self.client.delete(url, format='json') self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) -- GitLab