コード例 #1
0
ファイル: test_replacer.py プロジェクト: forkkit/snuba
    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}]
コード例 #2
0
ファイル: test_replacer.py プロジェクト: forkkit/snuba
    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
コード例 #3
0
    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
コード例 #4
0
    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()
コード例 #5
0
ファイル: test_replacer.py プロジェクト: forkkit/snuba
    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}]
コード例 #6
0
ファイル: test_errors_replacer.py プロジェクト: alexef/snuba
    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()
コード例 #7
0
    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
コード例 #8
0
    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()
コード例 #9
0
    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()