Browse Source

feat(testing): Mark some tests with querybuilder for smoke tests (#73305)

- As i'm refactoring some querybuilder stuff I'm wasting a lot of time
running the entire suite in CI, when some smoke tests locally would be
significantly faster
- To run this quickly do `pytest -m querybuilder tests/snuba
test/sentry/search` otherwise pytest will instantiate acceptance tests &
need to collect way more items than needed
William Mak 8 months ago
parent
commit
131822f06c

+ 1 - 0
pyproject.toml

@@ -22,6 +22,7 @@ markers = [
   "snuba_ci: test is run in snuba ci",
   "sentry_metrics: test requires access to sentry metrics",
   "symbolicator: test requires access to symbolicator",
+  "querybuilder: smoke tests for QueryBuilders",
 ]
 filterwarnings = [
   # Consider all warnings to be errors other than the ignored ones.

+ 1 - 0
tests/sentry/search/events/builder/test_discover.py

@@ -43,6 +43,7 @@ class QueryBuilderTest(TestCase):
             Condition(Column("project_id"), Op.IN, self.projects),
         ]
 
+    @pytest.mark.querybuilder
     def test_simple_query(self):
         query = QueryBuilder(
             Dataset.Discover,

+ 1 - 0
tests/sentry/search/events/builder/test_errors.py

@@ -19,6 +19,7 @@ class ErrorsQueryBuilderTest(TestCase):
     def setUp(self):
         self.projects = [self.project.id]
 
+    @pytest.mark.querybuilder
     def test_simple_query(self):
         query = ErrorsQueryBuilder(
             dataset=Dataset.Events,

+ 2 - 0
tests/sentry/search/events/builder/test_metrics.py

@@ -170,6 +170,7 @@ class MetricBuilderBaseTest(MetricsEnhancedPerformanceTestCase):
 
 
 class MetricQueryBuilderTest(MetricBuilderBaseTest):
+    @pytest.mark.querybuilder
     def test_default_conditions(self):
         query = MetricsQueryBuilder(
             self.params, query="", dataset=Dataset.PerformanceMetrics, selected_columns=[]
@@ -1676,6 +1677,7 @@ class MetricQueryBuilderTest(MetricBuilderBaseTest):
 
 
 class TimeseriesMetricQueryBuilderTest(MetricBuilderBaseTest):
+    @pytest.mark.querybuilder
     def test_get_query(self):
         orig_query = TimeseriesMetricQueryBuilder(
             self.params,

+ 1 - 0
tests/sentry/search/events/builder/test_profile_functions.py

@@ -49,6 +49,7 @@ def params(now, today):
             'package:""',
             Condition(Column("package"), Op("="), ""),
             id="empty package",
+            marks=pytest.mark.querybuilder,
         ),
         pytest.param(
             '!package:""',

+ 1 - 0
tests/sentry/search/events/builder/test_profile_functions_metrics.py

@@ -54,6 +54,7 @@ def params(now, today):
                 Function("has", parameters=[Column("tags.key"), 9223372036854776075]), Op("!="), 1
             ),
             id="empty package",
+            marks=pytest.mark.querybuilder,
         ),
         pytest.param(
             '!package:""',

+ 1 - 0
tests/sentry/search/events/builder/test_span_metrics.py

@@ -44,6 +44,7 @@ def create_condition(left_boundary, right_boundary, base_granularity, core_granu
 
 
 class MetricQueryBuilderTest(MetricsEnhancedPerformanceTestCase):
+    @pytest.mark.querybuilder
     def test_granularity(self):
         # Need to pick granularity based on the period
         def get_granularity(start, end):

+ 4 - 1
tests/sentry/search/events/builder/test_spans_indexed.py

@@ -76,7 +76,10 @@ def test_field_alias(params, field, expected):
     ["condition", "expected"],
     [
         pytest.param(
-            "span.duration:1s", Condition(span_duration, Op.EQ, 1000), id="span.duration:1s"
+            "span.duration:1s",
+            Condition(span_duration, Op.EQ, 1000),
+            id="span.duration:1s",
+            marks=pytest.mark.querybuilder,
         ),
         pytest.param(
             "span.duration:>1s", Condition(span_duration, Op.GT, 1000), id="span.duration:>1s"

+ 1 - 0
tests/snuba/api/endpoints/test_organization_events_histogram.py

@@ -83,6 +83,7 @@ class OrganizationEventsHistogramEndpointTest(APITestCase, SnubaTestCase):
         assert response.status_code == 200, response.content
         assert response.data == {}
 
+    @pytest.mark.querybuilder
     def test_good_params(self):
         for array_column in ARRAY_COLUMNS:
             alias = get_array_column_alias(array_column)

+ 1 - 0
tests/snuba/api/endpoints/test_organization_events_mep.py

@@ -412,6 +412,7 @@ class OrganizationEventsMetricsEnhancedPerformanceEndpointTest(MetricsEnhancedPe
         )
         assert response.status_code == 400, response.content
 
+    @pytest.mark.querybuilder
     def test_performance_homepage_query(self):
         self.store_transaction_metric(
             1,

Some files were not shown because too many files changed in this diff