diff --git a/beat/web/team/tests.py b/beat/web/team/tests.py index 3839dcfe72a34109e0822ba6213ef01f40e64728..1d12285ea4bf3f2868ce1643381c038b0c1b1b6d 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)