Isort and lint more on CI
This commit is contained in:
1 parent
d3bb845530
commit
241f9afa1a
132 files changed
+372
-214
No files matched your search
+3
-2
@@ -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"
|
||||
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
[settings]
|
||||
skip_glob = */migrations/*.py
|
||||
+2
-1
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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,4 +1,5 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import DebugInformationFile
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from django.db import models
|
||||
|
||||
from glitchtip.base_models import CreatedModel
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -1,6 +1,6 @@
|
||||
from django.urls import path
|
||||
from .views import DifsAssembleAPIView, ProjectReprocessingAPIView, DsymsAPIView
|
||||
|
||||
from .views import DifsAssembleAPIView, DsymsAPIView, ProjectReprocessingAPIView
|
||||
|
||||
urlpatterns = [
|
||||
path(
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from django.conf import settings
|
||||
from djstripe.models import Subscription
|
||||
|
||||
from glitchtip.email import DetailEmail
|
||||
|
||||
|
||||
|
||||
@@ -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."""
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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,4 +1,5 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import Environment, EnvironmentProject
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from django.db import models
|
||||
|
||||
from glitchtip.base_models import CreatedModel
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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,4 +1,5 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import Event
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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,
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
@@ -1,6 +1,6 @@
|
||||
from django.urls import path
|
||||
from .views import ChunkUploadAPIView
|
||||
|
||||
from .views import ChunkUploadAPIView
|
||||
|
||||
urlpatterns = [
|
||||
path(
|
||||
|
||||
+6
-3
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,4 +1,5 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from organizations_ext.models import Organization, OrganizationUserRole
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from django.urls import path
|
||||
|
||||
from .views import ImportAPIView
|
||||
|
||||
|
||||
urlpatterns = [path("import", ImportAPIView.as_view(), name="import")]
|
||||
@@ -1,4 +1,5 @@
|
||||
from rest_framework.permissions import BasePermission
|
||||
|
||||
from users.utils import is_user_registration_open
|
||||
|
||||
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
@@ -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,4 +1,5 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import Issue
|
||||
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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,5 +1,6 @@
|
||||
from django.shortcuts import reverse
|
||||
from model_bakery import baker
|
||||
|
||||
from glitchtip.test_utils.test_case import GlitchTipTestCase
|
||||
|
||||
|
||||
|
||||
+4
-2
@@ -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,4 +1,5 @@
|
||||
from locust import HttpUser, between, task
|
||||
|
||||
from events.test_data.event_generator import generate_random_event
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -2,7 +2,6 @@ from django.urls import path
|
||||
|
||||
from .views import DjangoPrometheusMetrics
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
path("django/", DjangoPrometheusMetrics.as_view(), name="prometheus-django-metrics")
|
||||
]
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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,4 +1,5 @@
|
||||
from django.conf import settings
|
||||
|
||||
from organizations_ext.models import Organization
|
||||
|
||||
|
||||
|
||||
+13
-11
@@ -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,
|
||||
)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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,4 +1,5 @@
|
||||
from glitchtip.test_utils.test_case import GlitchTipTestCase
|
||||
|
||||
from ..serializers import TransactionEventSerializer
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
+4
-3
@@ -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,4 +1,5 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from ..models import Project
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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):
|
||||
|
||||
@@ -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
Reference in new issue
Block a user