Isort and lint more on CI

This commit is contained in:
David Burke committed 2023-02-05 11:43:39 -05:00
1 parent d3bb845530
commit 241f9afa1a
132 files changed
+372 -214

No files matched your search

+3 -2
View File
@@ -40,8 +40,9 @@ lint:
script:
- curl -sSL https://install.python-poetry.org | python3 -
- $POETRY_HOME/bin/poetry install --no-interaction --no-ansi
# - isort --check glitchtip not compatible with black :(
# - pylint --load-plugins=pylint_django --django-settings-module=glitchtip.settings --disable=R glitchtip
- black --check .
- isort --check .
#- pylint --load-plugins=pylint_django --django-settings-module=glitchtip.settings --disable=R glitchtip
rules:
- if: $CI_PIPELINE_SOURCE != "schedule"
-2
View File
@@ -1,2 +0,0 @@
[settings]
skip_glob = */migrations/*.py
+2 -1
View File
@@ -1,5 +1,6 @@
from django.contrib import admin
from .models import Notification, ProjectAlert, AlertRecipient
from .models import AlertRecipient, Notification, ProjectAlert
class NotificationAdmin(admin.ModelAdmin):
+2
View File
@@ -1,6 +1,8 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from glitchtip.base_models import CreatedModel
from .email import send_email_notification
from .webhooks import send_webhook_notification
+2 -1
View File
@@ -1,5 +1,6 @@
from rest_framework import serializers
from .models import ProjectAlert, AlertRecipient
from .models import AlertRecipient, ProjectAlert
class AlertRecipientSerializer(serializers.ModelSerializer):
+4 -1
View File
@@ -1,8 +1,11 @@
from datetime import timedelta
from celery import shared_task
from django.db.models import Count
from django.utils import timezone
from celery import shared_task
from projects.models import Project
from .models import Notification
+2 -1
View File
@@ -1,7 +1,8 @@
from django.urls import reverse
from model_bakery import baker
from organizations_ext.models import OrganizationUserRole
from glitchtip.test_utils.test_case import APIPermissionTestCase
from organizations_ext.models import OrganizationUserRole
class AlertsAPIPermissionTests(APIPermissionTestCase):
+2
View File
@@ -1,7 +1,9 @@
from django.shortcuts import reverse
from model_bakery import baker
from glitchtip import test_utils # pylint: disable=unused-import
from glitchtip.test_utils.test_case import GlitchTipTestCase
from ..models import ProjectAlert
+7 -5
View File
@@ -1,12 +1,14 @@
from unittest import mock
from django.test import TestCase
from model_bakery import baker
from glitchtip import test_utils # pylint: disable=unused-import
from events.models import LogLevel
from ..tasks import process_event_alerts
from ..models import AlertRecipient, Notification
from ..webhooks import send_webhook, send_issue_as_webhook
from events.models import LogLevel
from glitchtip import test_utils # pylint: disable=unused-import
from ..models import AlertRecipient, Notification
from ..tasks import process_event_alerts
from ..webhooks import send_issue_as_webhook, send_webhook
TEST_URL = "https://burkesoftware.rocket.chat/hooks/Y8TttGY7RvN7Qm3gD/rqhHLiRSvYRZ8BhbhhhLYumdMksWnyj3Dqsqt8QKrmbNndXH"
+4 -2
View File
@@ -1,8 +1,10 @@
from rest_framework import viewsets, exceptions
from rest_framework import exceptions, viewsets
from projects.models import Project
from .models import ProjectAlert
from .serializers import ProjectAlertSerializer
from .permissions import ProjectAlertPermission
from .serializers import ProjectAlertSerializer
class ProjectAlertViewSet(viewsets.ModelViewSet):
+4 -3
View File
@@ -1,10 +1,11 @@
from typing import List, TYPE_CHECKING, Optional
from dataclasses import dataclass, asdict
import requests
from dataclasses import asdict, dataclass
from typing import TYPE_CHECKING, List, Optional
import requests
if TYPE_CHECKING:
from issues.models import Issue
from .models import Notification
+2 -1
View File
@@ -1,6 +1,7 @@
from django.contrib import admin
from bitfield import BitField
from bitfield.forms import BitFieldCheckboxSelectMultiple
from django.contrib import admin
from .models import APIToken
+1 -2
View File
@@ -2,11 +2,10 @@ import binascii
import os
from typing import List
from bitfield import BitField
from django.conf import settings
from django.db import models
from bitfield import BitField
from glitchtip.base_models import CreatedModel
+2 -1
View File
@@ -1,5 +1,6 @@
from rest_framework import serializers
from bitfield.types import BitHandler
from rest_framework import serializers
from .models import APIToken
+2 -1
View File
@@ -1,6 +1,7 @@
from django.urls import reverse
from rest_framework.test import APITestCase
from model_bakery import baker
from rest_framework.test import APITestCase
from glitchtip import test_utils # pylint: disable=unused-import
+2 -1
View File
@@ -1,5 +1,6 @@
from django.urls import path, include
from django.urls import include, path
from rest_framework import routers
from .views import APITokenViewSet
router = routers.SimpleRouter()
+3 -1
View File
@@ -1,7 +1,9 @@
from rest_framework import viewsets
from glitchtip.permissions import UserOnlyPermission
from .models import APIToken
from .serializers import APITokenSerializer
from glitchtip.permissions import UserOnlyPermission
class APITokenViewSet(viewsets.ModelViewSet):
+1
View File
@@ -1,4 +1,5 @@
from django.contrib import admin
from .models import DebugInformationFile
+1
View File
@@ -1,4 +1,5 @@
from django.db import models
from glitchtip.base_models import CreatedModel
+2 -1
View File
@@ -1,6 +1,7 @@
import copy
import logging
from symbolic import Archive, SymCache, parse_addr, ProguardMapper
from symbolic import Archive, ProguardMapper, SymCache, parse_addr
from symbolic.demangle import demangle_name
alternative_arch = {"x86": ["x86", "x86_64"]}
+1 -1
View File
@@ -1,6 +1,6 @@
from django.urls import path
from .views import DifsAssembleAPIView, ProjectReprocessingAPIView, DsymsAPIView
from .views import DifsAssembleAPIView, DsymsAPIView, ProjectReprocessingAPIView
urlpatterns = [
path(
+1
View File
@@ -1,5 +1,6 @@
from django.conf import settings
from djstripe.models import Subscription
from glitchtip.email import DetailEmail
+1 -2
View File
@@ -5,11 +5,10 @@
"""
from djstripe.models import Subscription
from rest_framework import serializers
from rest_framework.serializers import ModelSerializer
from djstripe.models import Subscription
class SubscriptionSerializer(ModelSerializer):
"""A serializer used for the Subscription model."""
+3 -1
View File
@@ -1,8 +1,10 @@
from django.core.exceptions import SuspiciousOperation
from djstripe.models import Customer, Plan, Product
from rest_framework import serializers
from rest_framework.serializers import ModelSerializer
from djstripe.models import Plan, Customer, Product
from organizations_ext.models import OrganizationUserRole
from .rest_framework.serializers import (
SubscriptionSerializer as BaseSubscriptionSerializer,
)
+7 -5
View File
@@ -1,11 +1,13 @@
from django.conf import settings
from django.db.models import Q, F, IntegerField
from django.db.models.functions import Cast
from django.db.models.fields.json import KeyTextTransform
from celery import shared_task
from django.conf import settings
from django.db.models import F, IntegerField, Q
from django.db.models.fields.json import KeyTextTransform
from django.db.models.functions import Cast
from organizations_ext.models import Organization
from .models import SubscriptionQuotaWarning
from .email import WarnQuotaEmail
from .models import SubscriptionQuotaWarning
@shared_task
+4 -1
View File
@@ -1,10 +1,13 @@
from datetime import timedelta
from django.core import mail
from django.test import TestCase
from django.utils import timezone
from model_bakery import baker
from freezegun import freeze_time
from model_bakery import baker
from glitchtip import test_utils # pylint: disable=unused-import
from ..tasks import warn_organization_throttle
+6 -4
View File
@@ -1,11 +1,13 @@
from unittest.mock import patch
from unittest import skipIf
from django.shortcuts import reverse
from unittest.mock import patch
from django.conf import settings
from django.shortcuts import reverse
from django.utils import timezone
from rest_framework.test import APITestCase
from model_bakery import baker
from freezegun import freeze_time
from model_bakery import baker
from rest_framework.test import APITestCase
from glitchtip import test_utils # pylint: disable=unused-import
+4 -3
View File
@@ -1,10 +1,11 @@
from django.urls import path, include
from django.urls import include, path
from rest_framework_nested import routers
from .views import (
SubscriptionViewSet,
ProductViewSet,
CreateStripeSubscriptionCheckout,
ProductViewSet,
StripeBillingPortal,
SubscriptionViewSet,
)
router = routers.SimpleRouter()
+1
View File
@@ -1,4 +1,5 @@
from django.contrib import admin
from .models import Environment, EnvironmentProject
+1
View File
@@ -1,4 +1,5 @@
from django.db import models
from glitchtip.base_models import CreatedModel
+1
View File
@@ -1,4 +1,5 @@
from rest_framework import serializers
from .models import Environment, EnvironmentProject
@@ -1,5 +1,6 @@
from django.shortcuts import reverse
from model_bakery import baker
from glitchtip.test_utils.test_case import APIPermissionTestCase
+2 -1
View File
@@ -1,9 +1,10 @@
from django.shortcuts import reverse
from model_bakery import baker
from ..models import EnvironmentProject
from glitchtip.test_utils.test_case import GlitchTipTestCase
from ..models import EnvironmentProject
class EnvironmentTestCase(GlitchTipTestCase):
def setUp(self):
+3 -2
View File
@@ -1,7 +1,8 @@
from rest_framework import viewsets, mixins
from rest_framework import mixins, viewsets
from .models import Environment, EnvironmentProject
from .serializers import EnvironmentSerializer, EnvironmentProjectSerializer
from .permissions import EnvironmentPermission, EnvironmentProjectPermission
from .serializers import EnvironmentProjectSerializer, EnvironmentSerializer
class EnvironmentViewSet(viewsets.ReadOnlyModelViewSet):
+1
View File
@@ -1,4 +1,5 @@
from django.contrib import admin
from .models import Event
+2 -1
View File
@@ -1,7 +1,8 @@
"""
Roughly a replacement of sentry/plugins/sentry_useragents but for contexts instead of tags
"""
from typing import Optional, Dict
from typing import Dict, Optional
from user_agents import parse
+4 -3
View File
@@ -1,8 +1,9 @@
from urllib.parse import parse_qs
from typing import List
import re
from typing import List
from urllib.parse import parse_qs
from rest_framework import serializers
from rest_framework.exceptions import ValidationError, ErrorDetail
from rest_framework.exceptions import ErrorDetail, ValidationError
class ErrorValueDetail(ErrorDetail):
+2 -1
View File
@@ -1,7 +1,8 @@
import codecs
from django.conf import settings
from rest_framework.parsers import JSONParser
from rest_framework.exceptions import ParseError
from rest_framework.parsers import JSONParser
from rest_framework.utils import json
@@ -1,4 +1,5 @@
from django.test import TestCase
from ..event_context_processors import (
EVENT_CONTEXT_PROCESSORS,
UserAgentContextProcessor,
+7 -5
View File
@@ -1,10 +1,12 @@
import shutil
from django.shortcuts import reverse
from rest_framework.test import APITestCase
from model_bakery import baker
from glitchtip import test_utils # pylint: disable=unused-import
from ..models import Event
from django.shortcuts import reverse
from model_bakery import baker
from rest_framework.test import APITestCase
from glitchtip import test_utils # pylint: disable=unused-import
from ..models import Event
sample_event = {
"event_id": "cf536c31b68a473f97e579507ce155e3",
+1 -1
View File
@@ -8,9 +8,9 @@ from model_bakery import baker
from rest_framework.test import APITestCase
from environments.models import Environment, EnvironmentProject
from releases.models import Release
from glitchtip import test_utils # pylint: disable=unused-import
from issues.models import EventStatus, Issue
from releases.models import Release
from ..models import Event, LogLevel
from ..test_data.csp import mdn_sample_csp
+3 -2
View File
@@ -1,6 +1,7 @@
from django.urls import path
from django.conf import settings
from .views import EventStoreAPIView, CSPStoreAPIView, test_event_view, EnvelopeAPIView
from django.urls import path
from .views import CSPStoreAPIView, EnvelopeAPIView, EventStoreAPIView, test_event_view
urlpatterns = [
path("<int:id>/store/", EventStoreAPIView.as_view(), name="event_store"),
+2 -1
View File
@@ -1,5 +1,6 @@
from django.contrib import admin
from .models import FileBlob, File
from .models import File, FileBlob
class FileBlobAdmin(admin.ModelAdmin):
+7 -5
View File
@@ -1,19 +1,21 @@
""" Partial port of sentry/tasks/assemble.py """
from enum import Enum
import hashlib
import json
import shutil
import tempfile
from enum import Enum
from os import path
import json
from django.core.cache import cache
from django.core.files import File
from django.db import transaction, IntegrityError
from django.db import IntegrityError, transaction
from organizations_ext.models import Organization
from releases.models import Release, ReleaseFile
from sentry.utils.zip import safe_extract_zip
from .models import File, FileBlob
from .exceptions import AssembleChecksumMismatch, AssembleArtifactsError
from .exceptions import AssembleArtifactsError, AssembleChecksumMismatch
from .models import File, FileBlob
MAX_FILE_SIZE = 2**31 # 2GB is the maximum offset supported by fileblob
+4 -2
View File
@@ -1,11 +1,13 @@
from hashlib import sha1
import tempfile
import mmap
import tempfile
from concurrent.futures import ThreadPoolExecutor
from hashlib import sha1
from django.core.files.base import File as FileObj
from django.db import models, transaction
from glitchtip.base_models import CreatedModel
from .exceptions import AssembleChecksumMismatch
+2 -1
View File
@@ -1,6 +1,7 @@
from glitchtip.test_utils.test_case import APIPermissionTestCase
from django.shortcuts import reverse
from glitchtip.test_utils.test_case import APIPermissionTestCase
class ChunkUploadAPIPermissionTests(APIPermissionTestCase):
def setUp(self):
+4 -1
View File
@@ -1,9 +1,12 @@
from io import BytesIO
from django.core.files.uploadedfile import InMemoryUploadedFile, SimpleUploadedFile
from django.shortcuts import reverse
from model_bakery import baker
from glitchtip.test_utils.test_case import GlitchTipTestCase
from ..models import FileBlob, File
from ..models import File, FileBlob
def generate_file():
+1 -1
View File
@@ -1,6 +1,6 @@
from django.urls import path
from .views import ChunkUploadAPIView
from .views import ChunkUploadAPIView
urlpatterns = [
path(
+6 -3
View File
@@ -1,13 +1,16 @@
""" Port of sentry.api.endpoints.chunk.ChunkUploadEndpoint """
import logging
from io import BytesIO
from gzip import GzipFile
from io import BytesIO
from django.conf import settings
from django.urls import reverse
from django.shortcuts import get_object_or_404
from rest_framework import views, status
from django.urls import reverse
from rest_framework import status, views
from rest_framework.response import Response
from organizations_ext.models import Organization
from .models import FileBlob
from .permissions import ChunkUploadPermission
+1 -1
View File
@@ -2,8 +2,8 @@ from django.core.management.base import BaseCommand
from model_bakery import baker
from model_bakery.random_gen import gen_json, gen_slug
from projects.models import Project
from organizations_ext.models import Organization
from projects.models import Project
baker.generators.add("organizations.fields.SlugField", gen_slug)
baker.generators.add("django.db.models.JSONField", gen_json)
-1
View File
@@ -18,7 +18,6 @@ import functools
from django.core.cache import cache
from django_redis import get_redis_connection
CACHE_PREFIX = ":1:" # Django cache version
# Run task on each mark, last mark will repeat
# 10th, 100th, 1000th, 2000th, 3000th, etc
+1
View File
@@ -1,4 +1,5 @@
from rest_framework import serializers
from organizations_ext.models import Organization, OrganizationUserRole
+1 -1
View File
@@ -1,5 +1,5 @@
from django.urls import path
from .views import ImportAPIView
urlpatterns = [path("import", ImportAPIView.as_view(), name="import")]
+1
View File
@@ -1,4 +1,5 @@
from rest_framework.permissions import BasePermission
from users.utils import is_user_registration_open
+2 -1
View File
@@ -1,5 +1,5 @@
from allauth.account.adapter import DefaultAccountAdapter
from allauth.account import app_settings as allauth_settings
from allauth.account.adapter import DefaultAccountAdapter
from allauth.account.auth_backends import AuthenticationBackend
from allauth.socialaccount.adapter import DefaultSocialAccountAdapter, get_adapter
from allauth.socialaccount.helpers import complete_social_login
@@ -18,6 +18,7 @@ from rest_framework import serializers
from rest_framework.response import Response
from users.utils import is_user_registration_open
from .constants import SOCIAL_ADAPTER_MAP
DOMAIN = settings.GLITCHTIP_URL.geturl()
@@ -1,4 +1,5 @@
from random import randrange
from django.utils import timezone
from freezegun import freeze_time
from model_bakery import baker
-1
View File
@@ -10,7 +10,6 @@ from organizations_ext.utils import is_organization_creation_open
from users.serializers import SocialAppSerializer, UserSerializer
from users.utils import is_user_registration_open
try:
from djstripe.settings import djstripe_settings
except ImportError:
+1
View File
@@ -1,4 +1,5 @@
from django.contrib import admin
from .models import Issue
+3 -2
View File
@@ -1,10 +1,11 @@
import random
from model_bakery.recipe import Recipe
from model_bakery.random_gen import gen_string
from model_bakery.recipe import Recipe
from events.models import Event
from .models import Issue
from .models import Issue
title_choices = [
"OperationalError: string is too long for tsvector",
+1
View File
@@ -2,6 +2,7 @@ from django_filters import rest_framework as filters
from glitchtip.filters import StartEndRelativeIsoDateTimeRangeFilter
from projects.models import Project
from .models import Issue
+8 -6
View File
@@ -1,11 +1,13 @@
from rest_framework import serializers
from projects.serializers.base_serializers import ProjectReferenceSerializer
from user_reports.serializers import UserReportSerializer
from sentry.interfaces.stacktrace import get_context
from glitchtip.serializers import FlexibleDateTimeField
from releases.serializers import ReleaseSerializer
from events.models import Event
from .models import Issue, EventType, EventStatus
from glitchtip.serializers import FlexibleDateTimeField
from projects.serializers.base_serializers import ProjectReferenceSerializer
from releases.serializers import ReleaseSerializer
from sentry.interfaces.stacktrace import get_context
from user_reports.serializers import UserReportSerializer
from .models import EventStatus, EventType, Issue
class EventUserSerializer(serializers.Serializer):
+5 -2
View File
@@ -1,9 +1,12 @@
from datetime import timedelta
from django.utils.timezone import now
from django.conf import settings
from celery import shared_task
from django.conf import settings
from django.utils.timezone import now
from events.models import Event
from glitchtip.debounced_celery_task import debounced_task, debounced_wrap
from .models import Issue
+2 -1
View File
@@ -1,7 +1,8 @@
from django.urls import reverse
from model_bakery import baker
from organizations_ext.models import OrganizationUserRole
from glitchtip.test_utils.test_case import APIPermissionTestCase
from organizations_ext.models import OrganizationUserRole
class IssueAPIPermissionTests(APIPermissionTestCase):
+2
View File
@@ -4,8 +4,10 @@ from django.urls import reverse
from django.utils import timezone
from freezegun import freeze_time
from model_bakery import baker
from glitchtip.test_utils.test_case import GlitchTipTestCase
from issues.tasks import update_search_index_all_issues
from ..tasks import update_search_index_all_issues
+8 -7
View File
@@ -1,12 +1,13 @@
import json
from typing import List, Dict, Union
from django.utils import dateparse
from django.urls import reverse
from events.test_data.django_error_factory import message
from events.test_data.csp import mdn_sample_csp
from glitchtip.test_utils.test_case import GlitchTipTestCase
from events.models import Event, LogLevel
from typing import Dict, List, Union
from django.urls import reverse
from django.utils import dateparse
from events.models import Event, LogLevel
from events.test_data.csp import mdn_sample_csp
from events.test_data.django_error_factory import message
from glitchtip.test_utils.test_case import GlitchTipTestCase
TEST_DATA_DIR = "events/test_data"
+4 -1
View File
@@ -1,11 +1,14 @@
from datetime import timedelta
from django.conf import settings
from django.test import TestCase
from django.utils.timezone import now
from model_bakery import baker
from freezegun import freeze_time
from model_bakery import baker
from events.models import Event
from issues.models import Issue
from ..tasks import cleanup_old_events
+1
View File
@@ -1,5 +1,6 @@
from django.shortcuts import reverse
from model_bakery import baker
from glitchtip.test_utils.test_case import GlitchTipTestCase
+4 -2
View File
@@ -1,8 +1,10 @@
from django.urls import path, include
from django.urls import include, path
from rest_framework_nested import routers
from glitchtip.routers import BulkSimpleRouter
from user_reports.views import UserReportViewSet
from .views import IssueViewSet, EventViewSet
from .views import EventViewSet, IssueViewSet
router = BulkSimpleRouter()
router.register(r"issues", IssueViewSet)
+1
View File
@@ -1,4 +1,5 @@
from locust import HttpUser, between, task
from events.test_data.event_generator import generate_random_event
+2 -4
View File
@@ -1,9 +1,7 @@
from django.shortcuts import reverse
from rest_framework.test import APIClient
from rest_framework.test import APITestCase
from rest_framework import status
from model_bakery import baker
from rest_framework import status
from rest_framework.test import APIClient, APITestCase
class ObservabilityAPITestCase(APITestCase):
-1
View File
@@ -2,7 +2,6 @@ from django.urls import path
from .views import DjangoPrometheusMetrics
urlpatterns = [
path("django/", DjangoPrometheusMetrics.as_view(), name="prometheus-django-metrics")
]
+2 -4
View File
@@ -1,9 +1,7 @@
from django.urls import path
from rest_framework.views import APIView
from rest_framework.permissions import IsAdminUser
from django_prometheus import exports
from rest_framework.permissions import IsAdminUser
from rest_framework.views import APIView
class DjangoPrometheusMetrics(APIView):
+2
View File
@@ -1,5 +1,7 @@
from django.conf import settings
from glitchtip.email import DetailEmail
from .models import Organization, OrganizationUser
@@ -1,4 +1,5 @@
from rest_framework import serializers
from ..models import Organization
+5 -3
View File
@@ -1,13 +1,15 @@
from rest_framework import serializers, status
from rest_framework.exceptions import APIException, PermissionDenied
from projects.serializers.base_serializers import ProjectReferenceWithMemberSerializer
from users.serializers import UserSerializer
from teams.serializers import TeamSerializer
from teams.models import Team
from teams.serializers import TeamSerializer
from users.models import User
from users.serializers import UserSerializer
from users.utils import is_user_registration_open
from ..models import ROLES, OrganizationUser, OrganizationUserRole
from .base_serializers import OrganizationReferenceSerializer
from ..models import OrganizationUser, OrganizationUserRole, ROLES
class OrganizationSerializer(OrganizationReferenceSerializer):
+3 -2
View File
@@ -1,7 +1,8 @@
from django.conf import settings
from celery import shared_task
from django.conf import settings
from .email import InvitationEmail, MetQuotaEmail
from .models import Organization
from .email import MetQuotaEmail, InvitationEmail
def get_free_tier_organizations_with_event_count():
@@ -1,7 +1,8 @@
from django.urls import reverse
from model_bakery import baker
from organizations_ext.models import OrganizationUserRole
from glitchtip.test_utils.test_case import APIPermissionTestCase
from organizations_ext.models import OrganizationUserRole
class OrganizationAPIPermissionTests(APIPermissionTestCase):
@@ -1,6 +1,8 @@
from django.urls import reverse
from model_bakery import baker
from glitchtip.test_utils.test_case import GlitchTipTestCase
from ..models import OrganizationUserRole
@@ -1,11 +1,14 @@
import json
from django.core import mail
from django.shortcuts import reverse
from django.test import override_settings
from rest_framework.test import APITestCase
from model_bakery import baker
from rest_framework.test import APITestCase
from glitchtip import test_utils # pylint: disable=unused-import
from ..models import OrganizationUserRole, OrganizationUser
from ..models import OrganizationUser, OrganizationUserRole
class OrganizationUsersAPITestCase(APITestCase):
+4 -2
View File
@@ -1,12 +1,14 @@
from django.core import mail
from django.test import TestCase, override_settings
from django.utils import timezone
from model_bakery import baker
from freezegun import freeze_time
from model_bakery import baker
from glitchtip import test_utils # pylint: disable=unused-import
from ..tasks import (
set_organization_throttle,
get_free_tier_organizations_with_event_count,
set_organization_throttle,
)
+4 -3
View File
@@ -1,10 +1,11 @@
from django.conf import settings
from django.shortcuts import reverse
from django.test import TestCase, RequestFactory
from rest_framework.test import APITestCase
from django.test import RequestFactory, TestCase
from model_bakery import baker
from organizations_ext.models import OrganizationUser, OrganizationUserRole
from rest_framework.test import APITestCase
from glitchtip import test_utils # pylint: disable=unused-import
from organizations_ext.models import OrganizationUser, OrganizationUserRole
class OrganizationModelTestCase(TestCase):
+11 -9
View File
@@ -1,18 +1,20 @@
from django.urls import path, include
from django.urls import include, path
from rest_framework_nested import routers
from issues.views import IssueViewSet
from teams.views import NestedTeamViewSet
from environments.views import EnvironmentViewSet
from releases.views import ReleaseViewSet, ReleaseFileViewSet
from performance.views import TransactionViewSet, TransactionGroupViewSet, SpanViewSet
from glitchtip.uptime.views import MonitorViewSet, MonitorCheckViewSet
from glitchtip.routers import BulkSimpleRouter
from glitchtip.uptime.views import MonitorCheckViewSet, MonitorViewSet
from issues.views import IssueViewSet
from performance.views import SpanViewSet, TransactionGroupViewSet, TransactionViewSet
from releases.views import ReleaseFileViewSet, ReleaseViewSet
from teams.views import NestedTeamViewSet
from .views import (
OrganizationViewSet,
OrganizationUserViewSet,
AcceptInviteView,
OrganizationMemberViewSet,
OrganizationProjectsViewSet,
AcceptInviteView,
OrganizationUserViewSet,
OrganizationViewSet,
)
router = BulkSimpleRouter()
+1
View File
@@ -1,4 +1,5 @@
from django.conf import settings
from organizations_ext.models import Organization
+13 -11
View File
@@ -1,30 +1,32 @@
from django.core.exceptions import ObjectDoesNotExist
from django.shortcuts import get_object_or_404
from django.http import Http404
from django.shortcuts import get_object_or_404
from drf_yasg.utils import swagger_auto_schema
from rest_framework import viewsets, views, exceptions, permissions, status
from organizations.backends import invitation_backend
from rest_framework import exceptions, permissions, status, views, viewsets
from rest_framework.decorators import action
from rest_framework.exceptions import PermissionDenied
from rest_framework.filters import OrderingFilter
from rest_framework.response import Response
from rest_framework.exceptions import PermissionDenied
from organizations.backends import invitation_backend
from organizations_ext.utils import is_organization_creation_open
from teams.serializers import TeamSerializer
from projects.views import NestedProjectViewSet
from teams.serializers import TeamSerializer
from .invitation_backend import InvitationTokenGenerator
from .models import Organization, OrganizationUser, OrganizationUserRole
from .permissions import (
OrganizationPermission,
OrganizationMemberPermission,
OrganizationMemberTeamsPermission,
OrganizationPermission,
)
from .invitation_backend import InvitationTokenGenerator
from .models import Organization, OrganizationUserRole, OrganizationUser
from .serializers.serializers import (
OrganizationSerializer,
AcceptInviteSerializer,
OrganizationDetailSerializer,
OrganizationUserSerializer,
OrganizationSerializer,
OrganizationUserDetailSerializer,
OrganizationUserProjectsSerializer,
AcceptInviteSerializer,
OrganizationUserSerializer,
ReinviteSerializer,
)
+1
View File
@@ -3,6 +3,7 @@ from django_filters import rest_framework as filters
from glitchtip.filters import StartEndRelativeIsoDateTimeRangeFilter
from projects.models import Project
from .models import TransactionGroup
+3 -1
View File
@@ -1,8 +1,10 @@
import datetime
from django.shortcuts import reverse
from django.utils import timezone
from model_bakery import baker
from freezegun import freeze_time
from model_bakery import baker
from glitchtip.test_utils.test_case import GlitchTipTestCase
+1
View File
@@ -1,4 +1,5 @@
from glitchtip.test_utils.test_case import GlitchTipTestCase
from ..serializers import TransactionEventSerializer
+7 -5
View File
@@ -1,15 +1,17 @@
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import viewsets
from rest_framework.filters import OrderingFilter
from django_filters.rest_framework import DjangoFilterBackend
from projects.models import Project
from .models import TransactionEvent, TransactionGroup, Span
from .filters import TransactionGroupFilter
from .models import Span, TransactionEvent, TransactionGroup
from .serializers import (
TransactionSerializer,
SpanSerializer,
TransactionDetailSerializer,
TransactionGroupSerializer,
SpanSerializer,
TransactionSerializer,
)
from .filters import TransactionGroupFilter
class TransactionGroupViewSet(viewsets.ReadOnlyModelViewSet):
@@ -1,10 +1,11 @@
# Generated by Django 4.1.3 on 2022-12-12 21:45
from django.db import migrations, models
from django.conf import settings
import uuid
import django.db.models.deletion
import django_extensions.db.fields
import uuid
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
@@ -1,7 +1,7 @@
# Generated by Django 4.1.3 on 2022-12-12 22:08
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
@@ -1,7 +1,7 @@
# Generated by Django 4.1.4 on 2023-01-03 20:21
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
+1
View File
@@ -1,4 +1,5 @@
from rest_framework import serializers
from ..models import Project
+3 -1
View File
@@ -1,10 +1,12 @@
from rest_framework import serializers
from organizations_ext.serializers.base_serializers import (
OrganizationReferenceSerializer,
)
from teams.serializers import RelatedTeamSerializer
from .base_serializers import ProjectReferenceWithMemberSerializer
from ..models import ProjectKey
from .base_serializers import ProjectReferenceWithMemberSerializer
class ProjectKeySerializer(serializers.ModelSerializer):
+2 -1
View File
@@ -1,7 +1,8 @@
from django.urls import reverse
from model_bakery import baker
from organizations_ext.models import OrganizationUserRole
from glitchtip.test_utils.test_case import APIPermissionTestCase
from organizations_ext.models import OrganizationUserRole
class ProjectAPIPermissionTests(APIPermissionTestCase):
+2 -1
View File
@@ -1,7 +1,8 @@
from django.urls import reverse
from model_bakery import baker
from organizations_ext.models import OrganizationUserRole
from glitchtip.test_utils.test_case import GlitchTipTestCase
from organizations_ext.models import OrganizationUserRole
class ProjectTeamViewTestCase(GlitchTipTestCase):
+3 -1
View File
@@ -1,8 +1,10 @@
from django.shortcuts import reverse
from rest_framework.test import APITestCase
from model_bakery import baker
from rest_framework.test import APITestCase
from glitchtip import test_utils # pylint: disable=unused-import
from organizations_ext.models import OrganizationUserRole
from ..models import ProjectKey
+4 -2
View File
@@ -1,11 +1,13 @@
from django.conf import settings
from django.shortcuts import reverse
from django.utils import timezone
from rest_framework.test import APITestCase
from model_bakery import baker
from rest_framework.test import APITestCase
from glitchtip import test_utils # pylint: disable=unused-import
from organizations_ext.models import OrganizationUserRole
from ..models import ProjectKey, Project
from ..models import Project, ProjectKey
class ProjectsAPITestCase(APITestCase):
+6 -4
View File
@@ -1,10 +1,12 @@
from django.urls import path, include
from django.urls import include, path
from rest_framework_nested import routers
from issues.views import IssueViewSet, EventViewSet
from alerts.views import ProjectAlertViewSet
from releases.views import ReleaseViewSet, ReleaseFileViewSet
from environments.views import EnvironmentProjectViewSet
from .views import ProjectViewSet, ProjectKeyViewSet, ProjectTeamViewSet
from issues.views import EventViewSet, IssueViewSet
from releases.views import ReleaseFileViewSet, ReleaseViewSet
from .views import ProjectKeyViewSet, ProjectTeamViewSet, ProjectViewSet
router = routers.SimpleRouter()
router.register(r"projects", ProjectViewSet)
+7 -5
View File
@@ -1,14 +1,16 @@
from rest_framework import viewsets, exceptions, status
from django.shortcuts import get_object_or_404
from rest_framework import exceptions, status, viewsets
from rest_framework.decorators import action
from rest_framework.filters import OrderingFilter
from rest_framework.response import Response
from django.shortcuts import get_object_or_404
from organizations_ext.models import Organization, OrganizationUserRole
from teams.models import Team
from teams.views import NestedTeamViewSet
from organizations_ext.models import Organization, OrganizationUserRole
from .models import Project, ProjectKey
from .serializers.serializers import ProjectSerializer, ProjectKeySerializer
from .permissions import ProjectPermission, ProjectKeyPermission
from .permissions import ProjectKeyPermission, ProjectPermission
from .serializers.serializers import ProjectKeySerializer, ProjectSerializer
class NestedProjectViewSet(viewsets.ModelViewSet):
+3
View File
@@ -62,6 +62,9 @@ requests-mock = "^1.9.3"
[tool.isort]
profile = "black"
skip = ["env"]
skip_glob = ["*/migrations/*.py"]
[build-system]
requires = ["poetry>=0.12"]
Loaded 100 of 132 files, more files were not shown because too many files have changed in this diff. Show more