Просмотр исходного кода

Add a requires_kafka fixture and add it to symbolicator (#56267)

Matt Gaunt-Seo @ Sentry.io 1 год назад
Родитель
Сommit
d9ea7a7210

+ 10 - 0
src/sentry/testutils/skips.py

@@ -70,6 +70,15 @@ def _requires_relay() -> None:
         pytest.skip("requires relay server running")
 
 
+@pytest.fixture(scope="session")
+def _requires_kafka() -> None:
+    kafka_conf = settings.SENTRY_DEVSERVICES["kafka"](settings, {})
+    (port,) = kafka_conf["ports"].values()
+
+    if not _service_available("127.0.0.1", port):
+        pytest.skip("requires kafka server running")
+
+
 @pytest.fixture(scope="session")
 def _requires_symbolicator() -> None:
     symbolicator_conf = settings.SENTRY_DEVSERVICES["symbolicator"](settings, {})
@@ -82,3 +91,4 @@ def _requires_symbolicator() -> None:
 requires_snuba = pytest.mark.usefixtures("_requires_snuba")
 requires_relay = pytest.mark.usefixtures("_requires_relay")
 requires_symbolicator = pytest.mark.usefixtures("_requires_symbolicator")
+requires_kafka = pytest.mark.usefixtures("_requires_kafka")

+ 4 - 1
tests/relay_integration/lang/javascript/test_example.py

@@ -6,7 +6,7 @@ from sentry.models import File, Release, ReleaseFile
 from sentry.testutils.helpers.datetime import before_now, iso_format
 from sentry.testutils.pytest.fixtures import django_db_all
 from sentry.testutils.relay import RelayStoreHelper
-from sentry.testutils.skips import requires_symbolicator
+from sentry.testutils.skips import requires_kafka, requires_symbolicator
 
 # IMPORTANT:
 #
@@ -18,6 +18,9 @@ from sentry.testutils.skips import requires_symbolicator
 # entry to your `/etc/hosts`
 
 
+pytestmark = [requires_symbolicator, requires_kafka]
+
+
 def get_fixture_path(name):
     return os.path.join(os.path.dirname(__file__), "fixtures/example", name)
 

+ 4 - 1
tests/relay_integration/lang/javascript/test_plugin.py

@@ -31,7 +31,7 @@ from sentry.testutils.helpers.features import with_feature
 from sentry.testutils.helpers.options import override_options
 from sentry.testutils.pytest.fixtures import django_db_all
 from sentry.testutils.relay import RelayStoreHelper
-from sentry.testutils.skips import requires_symbolicator
+from sentry.testutils.skips import requires_kafka, requires_symbolicator
 from sentry.utils import json
 
 # IMPORTANT:
@@ -43,6 +43,9 @@ from sentry.utils import json
 # to `system.internal-url-prefix` inside `initialize` method below, or add `127.0.0.1 host.docker.internal`
 # entry to your `/etc/hosts`
 
+
+pytestmark = [requires_symbolicator, requires_kafka]
+
 BASE64_SOURCEMAP = "data:application/json;base64," + (
     b64encode(
         b'{"version":3,"file":"generated.js","sources":["/test.js"],"names":[],"mappings":"AAAA","sourcesContent":['

+ 2 - 3
tests/symbolicator/test_minidump_full.py

@@ -13,7 +13,7 @@ from sentry.testutils.cases import TransactionTestCase
 from sentry.testutils.factories import get_fixture_path
 from sentry.testutils.helpers.task_runner import BurstTaskRunner
 from sentry.testutils.relay import RelayStoreHelper
-from sentry.testutils.skips import requires_symbolicator
+from sentry.testutils.skips import requires_kafka, requires_symbolicator
 from sentry.utils.safe import get_path
 from tests.symbolicator import insta_snapshot_native_stacktrace_data, redact_location
 
@@ -27,8 +27,7 @@ from tests.symbolicator import insta_snapshot_native_stacktrace_data, redact_loc
 # or add `127.0.0.1 host.docker.internal` entry to your `/etc/hosts`
 
 
-# TODO: Symbolicator tests also need kafka + zookeeper
-pytestmark = requires_symbolicator
+pytestmark = [requires_symbolicator, requires_kafka]
 
 
 @pytest.mark.snuba

+ 2 - 3
tests/symbolicator/test_payload_full.py

@@ -22,7 +22,7 @@ from sentry.testutils.factories import get_fixture_path
 from sentry.testutils.helpers.datetime import before_now, iso_format
 from sentry.testutils.helpers.options import override_options
 from sentry.testutils.relay import RelayStoreHelper
-from sentry.testutils.skips import requires_symbolicator
+from sentry.testutils.skips import requires_kafka, requires_symbolicator
 from sentry.utils import json
 from tests.symbolicator import insta_snapshot_native_stacktrace_data, redact_location
 
@@ -36,8 +36,7 @@ from tests.symbolicator import insta_snapshot_native_stacktrace_data, redact_loc
 # or add `127.0.0.1 host.docker.internal` entry to your `/etc/hosts`
 
 
-# TODO: Symbolicator tests also need kafka + zookeeper
-pytestmark = requires_symbolicator
+pytestmark = [requires_symbolicator, requires_kafka]
 
 REAL_RESOLVING_EVENT_DATA = {
     "platform": "cocoa",

+ 2 - 3
tests/symbolicator/test_unreal_full.py

@@ -11,7 +11,7 @@ from sentry.models import EventAttachment, File
 from sentry.testutils.cases import TransactionTestCase
 from sentry.testutils.factories import get_fixture_path
 from sentry.testutils.relay import RelayStoreHelper
-from sentry.testutils.skips import requires_symbolicator
+from sentry.testutils.skips import requires_kafka, requires_symbolicator
 from sentry.utils.safe import get_path
 from tests.symbolicator import normalize_native_exception
 
@@ -25,8 +25,7 @@ from tests.symbolicator import normalize_native_exception
 # or add `127.0.0.1 host.docker.internal` entry to your `/etc/hosts`
 
 
-# TODO: Symbolicator tests also need kafka + zookeeper
-pytestmark = requires_symbolicator
+pytestmark = [requires_symbolicator, requires_kafka]
 
 
 def get_unreal_crash_file():