def test_merge_insert(self): self.event['project_id'] = self.project_id self.event['group_id'] = 1 self.write_raw_events(self.event) assert self._issue_count(self.project_id) == [{'count': 1, 'issue': 1}] timestamp = datetime.now(tz=pytz.utc) test_worker = replacer.ReplacerWorker(self.clickhouse, self.dataset) project_id = self.project_id class FakeMessage(object): def value(self): return json.dumps((2, 'end_merge', { 'project_id': project_id, 'new_group_id': 2, 'previous_group_ids': [1], 'datetime': timestamp.strftime(PAYLOAD_DATETIME_FORMAT), })) def partition(self): return 1 def offset(self): return 42 processed = test_worker.process_message(FakeMessage()) test_worker.flush_batch([processed]) assert self._issue_count(1) == [{'count': 1, 'issue': 2}]
def setup_method(self, test_method): super(TestReplacer, self).setup_method(test_method) from snuba.api import application assert application.testing is True self.app = application.test_client() self.app.post = partial(self.app.post, headers={'referer': 'test'}) self.replacer = replacer.ReplacerWorker(self.clickhouse, self.dataset) self.project_id = 1
def setup_method(self, test_method): super(TestReplacer, self).setup_method(test_method) from snuba.web.views import application assert application.testing is True self.app = application.test_client() self.app.post = partial(self.app.post, headers={"referer": "test"}) self.replacer = replacer.ReplacerWorker( self.clickhouse, self.dataset, DummyMetricsBackend(strict=True)) self.project_id = 1
def setup_method(self): from snuba.web.views import application assert application.testing is True self.app = application.test_client() self.app.post = partial(self.app.post, headers={"referer": "test"}) self.storage = get_storage(StorageKey.EVENTS) self.replacer = replacer.ReplacerWorker( self.storage, DummyMetricsBackend(strict=True)) self.project_id = 1 self.event = get_raw_event()
def test_delete_tag_promoted_insert(self): self.event['project_id'] = self.project_id self.event['group_id'] = 1 self.event['data']['tags'].append(['browser.name', 'foo']) self.event['data']['tags'].append(['notbrowser', 'foo']) self.write_raw_events(self.event) project_id = self.project_id def _issue_count(total=False): return json.loads( self.app.post('/query', data=json.dumps({ 'project': [project_id], 'aggregations': [['count()', '', 'count']], 'conditions': [['tags[browser.name]', '=', 'foo']] if not total else [], 'groupby': ['issue'], })).data)['data'] assert _issue_count() == [{'count': 1, 'issue': 1}] assert _issue_count(total=True) == [{'count': 1, 'issue': 1}] timestamp = datetime.now(tz=pytz.utc) test_worker = replacer.ReplacerWorker(self.clickhouse, self.dataset) class FakeMessage(object): def value(self): return json.dumps((2, 'end_delete_tag', { 'project_id': project_id, 'tag': 'browser.name', 'datetime': timestamp.strftime(PAYLOAD_DATETIME_FORMAT), })) def partition(self): return 1 def offset(self): return 42 processed = test_worker.process_message(FakeMessage()) test_worker.flush_batch([processed]) assert _issue_count() == [] assert _issue_count(total=True) == [{'count': 1, 'issue': 1}]
def setup_method(self, test_method): super(TestReplacer, self).setup_method(test_method, "events_migration") from snuba.web.views import application assert application.testing is True self.app = application.test_client() self.app.post = partial(self.app.post, headers={"referer": "test"}) self.replacer = replacer.ReplacerWorker( self.dataset.get_writable_storage(), DummyMetricsBackend(strict=True)) self.project_id = 1 self.event = get_raw_event()
def setup_method(self): from snuba.web.views import application assert application.testing is True self.app = application.test_client() self.app.post = partial(self.app.post, headers={"referer": "test"}) self.storage = get_writable_storage(StorageKey.ERRORS) self.replacer = replacer.ReplacerWorker( self.storage, DummyMetricsBackend(strict=True)) self.project_id = 1 self.event = get_raw_event() settings.ERRORS_ROLLOUT_ALL = True settings.ERRORS_ROLLOUT_WRITABLE_STORAGE = True
def setup_method(self) -> None: from snuba.web.views import application assert application.testing is True self.app = application.test_client() self.storage = get_writable_storage(StorageKey.ERRORS) self.replacer = replacer.ReplacerWorker( self.storage, CONSUMER_GROUP, DummyMetricsBackend(strict=True), ) self.project_id = 1 self.event = get_raw_event()
def setup_method(self) -> None: from snuba.web.views import application assert application.testing is True self.app = application.test_client() self.storage = get_writable_storage(StorageKey.ERRORS) self.replacer = replacer.ReplacerWorker( self.storage, CONSUMER_GROUP, DummyMetricsBackend(strict=True), ) # Total query time range is 24h before to 24h after now to account # for local machine time zones self.from_time = datetime.now().replace( minute=0, second=0, microsecond=0) - timedelta(days=1) self.to_time = self.from_time + timedelta(days=2) self.project_id = 1 self.event = get_raw_event()