123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- from __future__ import absolute_import
- import pytest
- from datetime import datetime, timedelta
- from sentry.models import GroupHash
- from sentry.testutils import TestCase
- from sentry.utils import snuba
- class SnubaUtilTest(TestCase):
- def test_filter_keys_set(self):
- snuba.raw_query(
- start=datetime.now(),
- end=datetime.now(),
- filter_keys={
- 'project_id': set([1]),
- 'logger': set(['asdf']),
- },
- aggregations=[
- ['count()', '', 'count'],
- ],
- )
- def test_shrink_timeframe(self):
- now = datetime.now()
- year_ago = now - timedelta(days=365)
- issues = None
- assert snuba.shrink_time_window(issues, year_ago) == year_ago
- issues = []
- assert snuba.shrink_time_window(issues, year_ago) == year_ago
- group1 = self.create_group()
- group1.first_seen = now - timedelta(hours=1)
- group1.last_seen = now
- group1.save()
- GroupHash.objects.create(project_id=group1.project_id, group=group1, hash='a' * 32)
- group2 = self.create_group()
- GroupHash.objects.create(project_id=group2.project_id, group=group2, hash='b' * 32)
- issues = [group1.id]
- assert snuba.shrink_time_window(issues, year_ago) == \
- now - timedelta(hours=1, minutes=5)
- issues = [group1.id, group2.id]
- assert snuba.shrink_time_window(issues, year_ago) == year_ago
- with pytest.raises(snuba.QueryOutsideGroupActivityError):
- # query a group for a time range before it had any activity
- snuba.raw_query(
- start=group1.first_seen - timedelta(days=1, hours=1),
- end=group1.first_seen - timedelta(days=1),
- filter_keys={
- 'project_id': [group1.project_id],
- 'issue': [group1.id],
- },
- aggregations=[
- ['count()', '', 'count'],
- ],
- )
- def test_override_options(self):
- assert snuba.OVERRIDE_OPTIONS == {'consistent': False}
- with snuba.options_override({'foo': 1}):
- assert snuba.OVERRIDE_OPTIONS == {'foo': 1, 'consistent': False}
- with snuba.options_override({'foo': 2}):
- assert snuba.OVERRIDE_OPTIONS == {'foo': 2, 'consistent': False}
- assert snuba.OVERRIDE_OPTIONS == {'foo': 1, 'consistent': False}
- assert snuba.OVERRIDE_OPTIONS == {'consistent': False}
|