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