Browse Source

Some initial work towards test cleanup

David Cramer 10 years ago
parent
commit
44050bed5e

+ 20 - 2
src/sentry/testutils/fixtures.py

@@ -13,7 +13,9 @@ from django.utils.text import slugify
 from exam import fixture
 from uuid import uuid4
 
-from sentry.models import Activity, Event, Group, Project, Team, User
+from sentry.models import (
+    Activity, Event, Group, Organization, Project, Team, User
+)
 from sentry.utils.compat import pickle
 from sentry.utils.strings import decompress
 
@@ -31,9 +33,16 @@ class Fixtures(object):
     def user(self):
         return self.create_user('admin@localhost', username='admin')
 
+    @fixture
+    def organization(self):
+        return self.create_organization(
+            name='foo',
+            owner=self.user)
+
     @fixture
     def team(self):
         return self.create_team(
+            organization=self.organization,
             name='foo',
             slug='foo',
             owner=self.user)
@@ -63,12 +72,21 @@ class Fixtures(object):
             data={}
         )
 
+    def create_organization(self, **kwargs):
+        kwargs.setdefault('name', 'foo')
+        if not kwargs.get('owner'):
+            kwargs['owner'] = self.user
+
+        return Organization.objects.create(**kwargs)
+
     def create_team(self, **kwargs):
         kwargs.setdefault('name', 'foo')
         if not kwargs.get('slug'):
             kwargs['slug'] = slugify(six.text_type(kwargs['name']))
+        if not kwargs.get('organization'):
+            kwargs['organization'] = self.organization
         if not kwargs.get('owner'):
-            kwargs['owner'] = self.user
+            kwargs['owner'] = kwargs['organization'].owner
 
         return Team.objects.create(**kwargs)
 

+ 2 - 0
src/sentry/web/frontend/home.py

@@ -10,5 +10,7 @@ class HomeView(BaseView):
     def get(self, request):
         # TODO(dcramer): deal with no orgs
         organization = self.get_active_organization(request)
+        if organization is None:
+            raise NotImplementedError
         url = reverse('sentry-organization-home', args=[organization.id])
         return HttpResponseRedirect(url)

+ 2 - 46
tests/sentry/web/frontend/teams/tests.py

@@ -94,46 +94,6 @@ class NewTeamTest(BaseTeamTest):
         self.assertEquals(member.type, MEMBER_OWNER)
 
 
-class ManageTeamTest(BaseTeamTest):
-    @fixture
-    def path(self):
-        return reverse('sentry-manage-team', args=[self.team.slug])
-
-    def test_renders_with_context(self):
-        resp = self.client.get(self.path)
-        self.assertEquals(resp.status_code, 200)
-        self.assertTemplateUsed(resp, 'sentry/teams/manage.html')
-        assert resp.context['team'] == self.team
-
-    def test_valid_params(self):
-        resp = self.client.post(self.path, {
-            'name': 'bar',
-            'slug': self.team.slug,
-            'owner': self.team.owner.username,
-        })
-        assert resp.status_code == 302
-        self.assertEquals(resp['Location'], 'http://testserver' + self.path)
-        team = Team.objects.get(pk=self.team.pk)
-        self.assertEquals(team.name, 'bar')
-
-    def test_superuser_can_set_owner(self):
-        resp = self.client.post(self.path, {
-            'name': self.team.name,
-            'slug': self.team.slug,
-            'owner': self.user2.username,
-        })
-        assert resp.status_code == 302
-
-        team = Team.objects.get(id=self.team.id)
-
-        assert team.owner == self.user2
-
-        members = [(t.user, t.type) for t in self.team.member_set.all()]
-
-        assert (self.user2, MEMBER_OWNER) in members
-        assert (self.user, MEMBER_OWNER) in members
-
-
 class RemoveTeamTest(BaseTeamTest):
     @fixture
     def path(self):
@@ -159,7 +119,7 @@ class RemoveTeamTest(BaseTeamTest):
         assert not Team.objects.filter(pk=self.team.pk).exists()
 
 
-class NewTeamMemberTest(BaseTeamTest):
+class CreateTeamMemberTest(BaseTeamTest):
     @fixture
     def path(self):
         return reverse('sentry-new-team-member', args=[self.team.slug])
@@ -169,7 +129,7 @@ class NewTeamMemberTest(BaseTeamTest):
         self.assertEquals(resp.status_code, 200)
         self.assertTemplateUsed(resp, 'sentry/teams/members/new.html')
 
-    @mock.patch('sentry.web.frontend.teams.can_add_team_member')
+    @mock.patch('sentry.web.frontend.create_team_member.can_add_team_member')
     def test_missing_permission(self, can_add_team_member):
         can_add_team_member.return_value = False
         resp = self.client.get(self.path)
@@ -392,8 +352,6 @@ class ManageProjectsTest(BaseTeamTest):
         self.assertTemplateUsed(resp, 'sentry/teams/projects/index.html')
         assert list(resp.context['project_list']) == [project]
         assert resp.context['team'] == self.team
-        assert resp.context['page'] == 'projects'
-        assert resp.context['SUBSECTION'] == 'projects'
 
 
 class ManageMembersTest(BaseTeamTest):
@@ -414,5 +372,3 @@ class ManageMembersTest(BaseTeamTest):
             (pm, pm.email),
         ]
         assert resp.context['team'] == self.team
-        assert resp.context['page'] == 'members'
-        assert resp.context['SUBSECTION'] == 'members'

+ 49 - 0
tests/sentry/web/frontend/test_team_settings.py

@@ -0,0 +1,49 @@
+from __future__ import absolute_import
+
+from django.core.urlresolvers import reverse
+from exam import fixture
+
+from sentry.models import Team, TeamMemberType
+from sentry.testutils import TestCase
+
+
+class TeamSettingsTest(TestCase):
+    @fixture
+    def path(self):
+        return reverse('sentry-manage-team', args=[self.team.slug])
+
+    def test_renders_with_context(self):
+        resp = self.client.get(self.path)
+        self.assertEquals(resp.status_code, 200)
+        self.assertTemplateUsed(resp, 'sentry/teams/manage.html')
+        assert resp.context['team'] == self.team
+
+    def test_valid_params(self):
+        resp = self.client.post(self.path, {
+            'name': 'bar',
+            'slug': self.team.slug,
+            'owner': self.team.owner.username,
+        })
+        assert resp.status_code == 302
+        self.assertEquals(resp['Location'], 'http://testserver' + self.path)
+        team = Team.objects.get(pk=self.team.pk)
+        self.assertEquals(team.name, 'bar')
+
+    def test_superuser_can_set_owner(self):
+        user2 = self.create_user(username='other@example.com')
+
+        resp = self.client.post(self.path, {
+            'name': self.team.name,
+            'slug': self.team.slug,
+            'owner': user2.username,
+        })
+        assert resp.status_code == 302
+
+        team = Team.objects.get(id=self.team.id)
+
+        assert team.owner == user2
+
+        members = [(t.user, t.type) for t in self.team.member_set.all()]
+
+        assert (user2, TeamMemberType.ADMIN) in members
+        assert (self.user, TeamMemberType.ADMIN) in members