Browse Source

Merge pull request #3876 from getsentry/improve-acceptance-tests

Expand acceptance tests
David Cramer 8 years ago
parent
commit
285166c85a

+ 8 - 7
src/sentry/testutils/fixtures.py

@@ -157,16 +157,17 @@ class Fixtures(object):
         if not kwargs.get('name'):
             kwargs['name'] = petname.Generate(2, ' ').title()
 
-        owner = kwargs.pop('owner', None)
-        if not owner:
+        owner = kwargs.pop('owner', -1)
+        if owner is -1:
             owner = self.user
 
         org = Organization.objects.create(**kwargs)
-        self.create_member(
-            organization=org,
-            user=owner,
-            role='owner',
-        )
+        if owner:
+            self.create_member(
+                organization=org,
+                user=owner,
+                role='owner',
+            )
         return org
 
     def create_member(self, teams=None, **kwargs):

+ 1 - 0
src/sentry/utils/pytest/selenium.py

@@ -160,6 +160,7 @@ def browser(request, percy, live_server):
             'phantomjs',
         )
         driver = webdriver.PhantomJS(executable_path=phantomjs_path)
+        driver.set_window_size(1280, 800)
     else:
         raise pytest.UsageError('--driver must be specified')
 

+ 42 - 0
tests/acceptance/test_dashboard.py

@@ -0,0 +1,42 @@
+from __future__ import absolute_import
+
+from django.utils import timezone
+
+from sentry.testutils import AcceptanceTestCase
+
+
+class DashboardTest(AcceptanceTestCase):
+    def setUp(self):
+        super(DashboardTest, self).setUp()
+        self.user = self.create_user('foo@example.com')
+        self.org = self.create_organization(
+            name='Rowdy Tiger',
+            owner=None,
+        )
+        self.team = self.create_team(
+            organization=self.org,
+            name='Mariachi Band'
+        )
+        self.project = self.create_project(
+            organization=self.org,
+            team=self.team,
+            name='Bengal',
+        )
+        self.create_member(
+            user=self.user,
+            organization=self.org,
+            role='owner',
+            teams=[self.team],
+        )
+        self.login_as(self.user)
+        self.path = '/{}/'.format(self.org.slug)
+
+    def test_simple(self):
+        self.project.update(first_event=timezone.now())
+        self.browser.get(self.path)
+        # dashboard is a bit complex to load since it has many subcomponents
+        # so we bank on the core container and the activity container being
+        # enough of a check
+        self.browser.wait_until('.organization-home')
+        self.browser.wait_until_not('.loading-indicator')
+        self.browser.snapshot('organization dashboard')

+ 42 - 0
tests/acceptance/test_organization_stats.py

@@ -0,0 +1,42 @@
+from __future__ import absolute_import
+
+from django.utils import timezone
+
+from sentry.testutils import AcceptanceTestCase
+
+
+class OrganizationStatsTest(AcceptanceTestCase):
+    def setUp(self):
+        super(OrganizationStatsTest, self).setUp()
+        self.user = self.create_user('foo@example.com')
+        self.org = self.create_organization(
+            name='Rowdy Tiger',
+            owner=None,
+        )
+        self.team = self.create_team(
+            organization=self.org,
+            name='Mariachi Band'
+        )
+        self.project = self.create_project(
+            organization=self.org,
+            team=self.team,
+            name='Bengal',
+        )
+        self.create_member(
+            user=self.user,
+            organization=self.org,
+            role='owner',
+            teams=[self.team],
+        )
+        self.login_as(self.user)
+        self.path = '/organizations/{}/stats/'.format(self.org.slug)
+
+    def test_simple(self):
+        self.project.update(first_event=timezone.now())
+        self.browser.get(self.path)
+        # dashboard is a bit complex to load since it has many subcomponents
+        # so we bank on the core container and the activity container being
+        # enough of a check
+        self.browser.wait_until('.organization-home')
+        self.browser.wait_until_not('.loading-indicator')
+        self.browser.snapshot('organization stats')

+ 1 - 0
tests/acceptance/test_project_issues.py

@@ -42,6 +42,7 @@ class ProjectIssuesTest(AcceptanceTestCase):
         )
         self.browser.get(self.path)
         self.browser.wait_until('.group-list')
+        self.browser.wait_until('.sparkline')
         self.browser.snapshot('project issues with issues')
 
     def test_with_no_issues(self):

+ 42 - 0
tests/acceptance/test_project_list.py

@@ -0,0 +1,42 @@
+from __future__ import absolute_import
+
+from django.utils import timezone
+
+from sentry.testutils import AcceptanceTestCase
+
+
+class ProjectListTest(AcceptanceTestCase):
+    def setUp(self):
+        super(ProjectListTest, self).setUp()
+        self.user = self.create_user('foo@example.com')
+        self.org = self.create_organization(
+            name='Rowdy Tiger',
+            owner=None,
+        )
+        self.team = self.create_team(
+            organization=self.org,
+            name='Mariachi Band'
+        )
+        self.project = self.create_project(
+            organization=self.org,
+            team=self.team,
+            name='Bengal',
+        )
+        self.create_member(
+            user=self.user,
+            organization=self.org,
+            role='owner',
+            teams=[self.team],
+        )
+        self.login_as(self.user)
+        self.path = '/organizations/{}/teams/'.format(self.org.slug)
+
+    def test_simple(self):
+        self.project.update(first_event=timezone.now())
+        self.browser.get(self.path)
+        # dashboard is a bit complex to load since it has many subcomponents
+        # so we bank on the core container and the activity container being
+        # enough of a check
+        self.browser.wait_until('.organization-home')
+        self.browser.wait_until_not('.loading-indicator')
+        self.browser.snapshot('organization project list')