David Cramer 7 лет назад
Родитель
Сommit
dac4fd5c91

+ 1 - 1
src/sentry/conf/server.py

@@ -1096,7 +1096,7 @@ SENTRY_ROLES = ({'id': 'member',
                                 'project:read',
                                 'org:read',
                                 'member:read',
-                                 'team:read',
+                                'team:read',
                                 ]),
                  },
                 {'id': 'admin',

+ 45 - 18
tests/bitfield/tests.py

@@ -160,7 +160,8 @@ class BitFieldTest(TestCase):
         cursor = connection.cursor()
         flags_field = BitFieldTestModel._meta.get_field('flags')
         flags_db_column = flags_field.db_column or flags_field.name
-        cursor.execute("INSERT INTO %s (%s) VALUES (-1)" % (BitFieldTestModel._meta.db_table, flags_db_column))
+        cursor.execute("INSERT INTO %s (%s) VALUES (-1)" %
+                       (BitFieldTestModel._meta.db_table, flags_db_column))
         # There should only be the one row we inserted through the cursor.
         instance = BitFieldTestModel.objects.get(flags=-1)
         self.assertTrue(instance.flags.FLAG_0)
@@ -174,27 +175,44 @@ class BitFieldTest(TestCase):
 
     def test_select(self):
         BitFieldTestModel.objects.create(flags=3)
-        self.assertTrue(BitFieldTestModel.objects.filter(flags=BitFieldTestModel.flags.FLAG_1).exists())
-        self.assertTrue(BitFieldTestModel.objects.filter(flags=BitFieldTestModel.flags.FLAG_0).exists())
-        self.assertFalse(BitFieldTestModel.objects.exclude(flags=BitFieldTestModel.flags.FLAG_0).exists())
-        self.assertFalse(BitFieldTestModel.objects.exclude(flags=BitFieldTestModel.flags.FLAG_1).exists())
+        self.assertTrue(BitFieldTestModel.objects.filter(
+            flags=BitFieldTestModel.flags.FLAG_1).exists())
+        self.assertTrue(BitFieldTestModel.objects.filter(
+            flags=BitFieldTestModel.flags.FLAG_0).exists())
+        self.assertFalse(BitFieldTestModel.objects.exclude(
+            flags=BitFieldTestModel.flags.FLAG_0).exists())
+        self.assertFalse(BitFieldTestModel.objects.exclude(
+            flags=BitFieldTestModel.flags.FLAG_1).exists())
 
     def test_update(self):
         instance = BitFieldTestModel.objects.create(flags=0)
         self.assertFalse(instance.flags.FLAG_0)
 
-        BitFieldTestModel.objects.filter(pk=instance.pk).update(flags=bitor(F('flags'), BitFieldTestModel.flags.FLAG_1))
+        BitFieldTestModel.objects.filter(
+            pk=instance.pk).update(
+            flags=bitor(
+                F('flags'),
+                BitFieldTestModel.flags.FLAG_1))
         instance = BitFieldTestModel.objects.get(pk=instance.pk)
         self.assertTrue(instance.flags.FLAG_1)
 
-        BitFieldTestModel.objects.filter(pk=instance.pk).update(flags=bitor(F('flags'), ((~BitFieldTestModel.flags.FLAG_0 | BitFieldTestModel.flags.FLAG_3))))
+        BitFieldTestModel.objects.filter(
+            pk=instance.pk).update(
+            flags=bitor(
+                F('flags'),
+                ((~BitFieldTestModel.flags.FLAG_0 | BitFieldTestModel.flags.FLAG_3))))
         instance = BitFieldTestModel.objects.get(pk=instance.pk)
         self.assertFalse(instance.flags.FLAG_0)
         self.assertTrue(instance.flags.FLAG_1)
         self.assertTrue(instance.flags.FLAG_3)
-        self.assertFalse(BitFieldTestModel.objects.filter(flags=BitFieldTestModel.flags.FLAG_0).exists())
-
-        BitFieldTestModel.objects.filter(pk=instance.pk).update(flags=bitand(F('flags'), ~BitFieldTestModel.flags.FLAG_3))
+        self.assertFalse(BitFieldTestModel.objects.filter(
+            flags=BitFieldTestModel.flags.FLAG_0).exists())
+
+        BitFieldTestModel.objects.filter(
+            pk=instance.pk).update(
+            flags=bitand(
+                F('flags'),
+                ~BitFieldTestModel.flags.FLAG_3))
         instance = BitFieldTestModel.objects.get(pk=instance.pk)
         self.assertFalse(instance.flags.FLAG_0)
         self.assertTrue(instance.flags.FLAG_1)
@@ -206,16 +224,24 @@ class BitFieldTest(TestCase):
 
         instance.flags.FLAG_1 = True
 
-        BitFieldTestModel.objects.filter(pk=instance.pk).update(flags=bitor(F('flags'), instance.flags))
+        BitFieldTestModel.objects.filter(
+            pk=instance.pk).update(
+            flags=bitor(
+                F('flags'),
+                instance.flags))
         instance = BitFieldTestModel.objects.get(pk=instance.pk)
         self.assertTrue(instance.flags.FLAG_1)
 
     def test_negate(self):
-        BitFieldTestModel.objects.create(flags=BitFieldTestModel.flags.FLAG_0 | BitFieldTestModel.flags.FLAG_1)
+        BitFieldTestModel.objects.create(
+            flags=BitFieldTestModel.flags.FLAG_0 | BitFieldTestModel.flags.FLAG_1)
         BitFieldTestModel.objects.create(flags=BitFieldTestModel.flags.FLAG_1)
-        self.assertEqual(BitFieldTestModel.objects.filter(flags=~BitFieldTestModel.flags.FLAG_0).count(), 1)
-        self.assertEqual(BitFieldTestModel.objects.filter(flags=~BitFieldTestModel.flags.FLAG_1).count(), 0)
-        self.assertEqual(BitFieldTestModel.objects.filter(flags=~BitFieldTestModel.flags.FLAG_2).count(), 2)
+        self.assertEqual(BitFieldTestModel.objects.filter(
+            flags=~BitFieldTestModel.flags.FLAG_0).count(), 1)
+        self.assertEqual(BitFieldTestModel.objects.filter(
+            flags=~BitFieldTestModel.flags.FLAG_1).count(), 0)
+        self.assertEqual(BitFieldTestModel.objects.filter(
+            flags=~BitFieldTestModel.flags.FLAG_2).count(), 2)
 
     def test_default_value(self):
         instance = BitFieldTestModel.objects.create()
@@ -257,7 +283,8 @@ class BitFieldTest(TestCase):
         except ValueError:
             self.fail("It should work well with these flags")
 
-        self.assertEquals(bf.flags, ['zero', 'first', 'second', '', '', '', '', '', '', '', 'tenth'])
+        self.assertEquals(bf.flags, ['zero', 'first', 'second',
+                                     '', '', '', '', '', '', '', 'tenth'])
         self.assertRaises(ValueError, BitField, flags={})
         self.assertRaises(ValueError, BitField, flags={'wrongkey': 'wrongkey'})
         self.assertRaises(ValueError, BitField, flags={'1': 'non_int_key'})
@@ -333,9 +360,9 @@ class CompositeBitFieldTest(TestCase):
     def test_hasattr(self):
         inst = CompositeBitFieldTestModel()
         self.assertEqual(hasattr(inst.flags, 'flag_0'),
-            hasattr(inst.flags_1, 'flag_0'))
+                         hasattr(inst.flags_1, 'flag_0'))
         self.assertEqual(hasattr(inst.flags, 'flag_4'),
-            hasattr(inst.flags_2, 'flag_4'))
+                         hasattr(inst.flags_2, 'flag_4'))
 
 
 class BitFormFieldTest(TestCase):

+ 3 - 1
tests/integration/tests.py

@@ -93,6 +93,7 @@ class RavenIntegrationTest(TransactionTestCase):
     This mocks the test server and specifically tests behavior that would
     happen between Raven <--> Sentry over HTTP communication.
     """
+
     def setUp(self):
         self.user = self.create_user('coreapi@example.com')
         self.project = self.create_project()
@@ -112,7 +113,8 @@ class RavenIntegrationTest(TransactionTestCase):
 
     def sendRemote(self, url, data, headers={}):
         content_type = headers.pop('Content-Type', None)
-        headers = dict(('HTTP_' + k.replace('-', '_').upper(), v) for k, v in six.iteritems(headers))
+        headers = dict(('HTTP_' + k.replace('-', '_').upper(), v)
+                       for k, v in six.iteritems(headers))
         if isinstance(data, six.text_type):
             data = data.encode('utf-8')
         resp = self.client.post(

+ 2 - 1
tests/sentry/api/endpoints/test_onboarding.py

@@ -13,7 +13,8 @@ class SkipOnboardingTaskTest(APITestCase):
         self.login_as(user=self.user)
 
         organization = self.create_organization(name='foo', owner=self.user)
-        url = reverse('sentry-api-0-organization-onboardingtasks', kwargs={'organization_slug': organization.slug})
+        url = reverse('sentry-api-0-organization-onboardingtasks',
+                      kwargs={'organization_slug': organization.slug})
 
         resp = self.client.post(url, data={'task': '9', 'status': 'skipped'}, format='json')
         assert resp.status_code == 204

+ 8 - 4
tests/sentry/api/endpoints/test_organization_access_request_details.py

@@ -26,7 +26,8 @@ class UpdateOrganizationAccessRequestTest(APITestCase):
             team=team,
         )
 
-        path = reverse('sentry-api-0-organization-access-request-details', args=[organization.slug, access_request.id])
+        path = reverse('sentry-api-0-organization-access-request-details',
+                       args=[organization.slug, access_request.id])
 
         self.login_as(self.user)
 
@@ -61,7 +62,8 @@ class UpdateOrganizationAccessRequestTest(APITestCase):
             team=team,
         )
 
-        path = reverse('sentry-api-0-organization-access-request-details', args=[organization.slug, access_request.id])
+        path = reverse('sentry-api-0-organization-access-request-details',
+                       args=[organization.slug, access_request.id])
 
         self.login_as(self.user)
 
@@ -104,7 +106,8 @@ class UpdateOrganizationAccessRequestTest(APITestCase):
             teams=[team],
         )
 
-        path = reverse('sentry-api-0-organization-access-request-details', args=[organization.slug, access_request.id])
+        path = reverse('sentry-api-0-organization-access-request-details',
+                       args=[organization.slug, access_request.id])
 
         self.login_as(admin_user)
 
@@ -141,7 +144,8 @@ class UpdateOrganizationAccessRequestTest(APITestCase):
             teams=[],
         )
 
-        path = reverse('sentry-api-0-organization-access-request-details', args=[organization.slug, access_request.id])
+        path = reverse('sentry-api-0-organization-access-request-details',
+                       args=[organization.slug, access_request.id])
 
         self.login_as(admin_user)
 

+ 8 - 1
tests/sentry/api/endpoints/test_organization_issues_new.py

@@ -17,7 +17,14 @@ class OrganizationIssuesNewTest(APITestCase):
         project1 = self.create_project(organization=org, name='foo')
         project2 = self.create_project(organization=org, name='bar')
         group1 = self.create_group(checksum='a' * 32, project=project1, score=10, first_seen=now)
-        group2 = self.create_group(checksum='b' * 32, project=project2, score=5, first_seen=now + timedelta(seconds=1))
+        group2 = self.create_group(
+            checksum='b' *
+            32,
+            project=project2,
+            score=5,
+            first_seen=now +
+            timedelta(
+                seconds=1))
         member = OrganizationMember.objects.get(
             user=user,
             organization=org,

+ 12 - 6
tests/sentry/api/endpoints/test_organization_member_details.py

@@ -21,7 +21,8 @@ class UpdateOrganizationMemberTest(APITestCase):
             role='member',
         )
 
-        path = reverse('sentry-api-0-organization-member-details', args=[organization.slug, member_om.id])
+        path = reverse('sentry-api-0-organization-member-details',
+                       args=[organization.slug, member_om.id])
 
         self.login_as(self.user)
 
@@ -47,7 +48,8 @@ class UpdateOrganizationMemberTest(APITestCase):
             flags=1,
         )
 
-        path = reverse('sentry-api-0-organization-member-details', args=[organization.slug, member_om.id])
+        path = reverse('sentry-api-0-organization-member-details',
+                       args=[organization.slug, member_om.id])
 
         self.login_as(self.user)
 
@@ -68,7 +70,8 @@ class UpdateOrganizationMemberTest(APITestCase):
             role='member',
         )
 
-        path = reverse('sentry-api-0-organization-member-details', args=[organization.slug, member_om.id])
+        path = reverse('sentry-api-0-organization-member-details',
+                       args=[organization.slug, member_om.id])
 
         self.login_as(self.user)
 
@@ -90,7 +93,8 @@ class DeleteOrganizationMemberTest(APITestCase):
             role='member',
         )
 
-        path = reverse('sentry-api-0-organization-member-details', args=[organization.slug, member_om.id])
+        path = reverse('sentry-api-0-organization-member-details',
+                       args=[organization.slug, member_om.id])
 
         self.login_as(self.user)
 
@@ -118,7 +122,8 @@ class DeleteOrganizationMemberTest(APITestCase):
 
         assert owner_om.role == 'owner'
 
-        path = reverse('sentry-api-0-organization-member-details', args=[organization.slug, owner_om.id])
+        path = reverse('sentry-api-0-organization-member-details',
+                       args=[organization.slug, owner_om.id])
 
         self.login_as(other_user)
 
@@ -147,7 +152,8 @@ class DeleteOrganizationMemberTest(APITestCase):
 
         assert owner_om.role == 'owner'
 
-        path = reverse('sentry-api-0-organization-member-details', args=[organization.slug, owner_om.id])
+        path = reverse('sentry-api-0-organization-member-details',
+                       args=[organization.slug, owner_om.id])
 
         self.login_as(self.user)
 

+ 24 - 9
tests/sentry/api/endpoints/test_organization_releases.py

@@ -667,11 +667,16 @@ class OrganizationReleaseCreateTest(APITestCase):
             organization=org,
             scope_list=['project:read'],
         )
-        response = self.client.post(url,
+        response = self.client.post(
+            url,
             data={
                 'version': '1.2.1',
-                'projects': [project1.slug]
-            }, HTTP_AUTHORIZATION='Basic ' + b64encode('{}:'.format(bad_api_key.key)))
+                'projects': [
+                    project1.slug]},
+            HTTP_AUTHORIZATION='Basic ' +
+            b64encode(
+                '{}:'.format(
+                    bad_api_key.key)))
         assert response.status_code == 403
 
         # test wrong org, right permissions level
@@ -679,11 +684,16 @@ class OrganizationReleaseCreateTest(APITestCase):
             organization=org2,
             scope_list=['project:write'],
         )
-        response = self.client.post(url,
+        response = self.client.post(
+            url,
             data={
                 'version': '1.2.1',
-                'projects': [project1.slug]
-            }, HTTP_AUTHORIZATION='Basic ' + b64encode('{}:'.format(wrong_org_api_key.key)))
+                'projects': [
+                    project1.slug]},
+            HTTP_AUTHORIZATION='Basic ' +
+            b64encode(
+                '{}:'.format(
+                    wrong_org_api_key.key)))
         assert response.status_code == 403
 
         # test right org, right permissions level
@@ -691,11 +701,16 @@ class OrganizationReleaseCreateTest(APITestCase):
             organization=org,
             scope_list=['project:write'],
         )
-        response = self.client.post(url,
+        response = self.client.post(
+            url,
             data={
                 'version': '1.2.1',
-                'projects': [project1.slug]
-            }, HTTP_AUTHORIZATION='Basic ' + b64encode('{}:'.format(good_api_key.key)))
+                'projects': [
+                    project1.slug]},
+            HTTP_AUTHORIZATION='Basic ' +
+            b64encode(
+                '{}:'.format(
+                    good_api_key.key)))
         assert response.status_code == 201, response.content
 
     @patch('sentry.tasks.commits.fetch_commits')

+ 11 - 4
tests/sentry/api/endpoints/test_project_details.py

@@ -128,11 +128,18 @@ class ProjectUpdateTest(APITestCase):
         assert project.get_option('sentry:origins', []) == options['sentry:origins'].split('\n')
         assert project.get_option('sentry:resolve_age', 0) == options['sentry:resolve_age']
         assert project.get_option('sentry:scrub_data', True) == options['sentry:scrub_data']
-        assert project.get_option('sentry:scrub_defaults', True) == options['sentry:scrub_defaults']
-        assert project.get_option('sentry:sensitive_fields', []) == options['sentry:sensitive_fields']
+        assert project.get_option(
+            'sentry:scrub_defaults',
+            True) == options['sentry:scrub_defaults']
+        assert project.get_option(
+            'sentry:sensitive_fields',
+            []) == options['sentry:sensitive_fields']
         assert project.get_option('sentry:safe_fields', []) == options['sentry:safe_fields']
-        assert project.get_option('sentry:csp_ignored_sources_defaults', True) == options['sentry:csp_ignored_sources_defaults']
-        assert project.get_option('sentry:csp_ignored_sources', []) == options['sentry:csp_ignored_sources'].split('\n')
+        assert project.get_option(
+            'sentry:csp_ignored_sources_defaults',
+            True) == options['sentry:csp_ignored_sources_defaults']
+        assert project.get_option('sentry:csp_ignored_sources',
+                                  []) == options['sentry:csp_ignored_sources'].split('\n')
 
     def test_bookmarks(self):
         project = self.project  # force creation

+ 3 - 2
tests/sentry/api/endpoints/test_project_group_index.py

@@ -549,7 +549,7 @@ class GroupUpdateTest(APITestCase):
                                          version='a')
         release.add_project(self.project)
         release2 = Release.objects.create(organization_id=self.project.organization_id,
-                                         version='b')
+                                          version='b')
         release2.add_project(self.project)
 
         group = self.create_group(
@@ -815,7 +815,8 @@ class GroupUpdateTest(APITestCase):
         assert snooze.window is None
 
         # Drop microsecond value for MySQL
-        response.data['statusDetails']['ignoreUntil'] = response.data['statusDetails']['ignoreUntil'].replace(microsecond=0)
+        response.data['statusDetails']['ignoreUntil'] = response.data['statusDetails']['ignoreUntil'].replace(
+            microsecond=0)
 
         assert response.data['status'] == 'ignored'
         assert response.data['statusDetails']['ignoreCount'] == snooze.count

Некоторые файлы не были показаны из-за большого количества измененных файлов