Example #1
0
    def test_integration(self):
        Project.objects.all().delete()

        now = datetime(2016, 9, 12, tzinfo=pytz.utc)

        project = self.create_project(
            organization=self.organization,
            team=self.team,
            date_added=now - timedelta(days=90),
        )

        tsdb.incr(
            tsdb.models.project,
            project.id,
            now - timedelta(days=1),
        )

        member_set = set(project.team.member_set.all())

        with self.tasks(), \
                mock.patch.object(tsdb, 'get_earliest_timestamp') as get_earliest_timestamp:
            # Ensure ``get_earliest_timestamp`` is relative to the fixed
            # "current" timestamp -- this prevents filtering out data points
            # that would be considered expired relative to the *actual* current
            # timestamp.
            get_earliest_timestamp.return_value = to_timestamp(now - timedelta(days=60))

            prepare_reports(timestamp=to_timestamp(now))
            assert len(mail.outbox) == len(member_set) == 1

            message = mail.outbox[0]
            assert self.organization.name in message.subject
Example #2
0
    def test_integration(self):
        Project.objects.all().delete()

        now = datetime(2016, 9, 12, tzinfo=pytz.utc)

        project = self.create_project(organization=self.organization,
                                      teams=[self.team],
                                      date_added=now - timedelta(days=90))

        tsdb.incr(tsdb.models.project, project.id, now - timedelta(days=1))

        member_set = set(project.teams.first().member_set.all())

        with self.tasks(), mock.patch.object(
                tsdb, "get_earliest_timestamp") as get_earliest_timestamp:
            # Ensure ``get_earliest_timestamp`` is relative to the fixed
            # "current" timestamp -- this prevents filtering out data points
            # that would be considered expired relative to the *actual* current
            # timestamp.
            get_earliest_timestamp.return_value = to_timestamp(now - timedelta(
                days=60))

            prepare_reports(timestamp=to_timestamp(now))
            assert len(mail.outbox) == len(member_set) == 1

            message = mail.outbox[0]
            assert self.organization.name in message.subject
Example #3
0
    def test_integration(self, has_feature):
        Project.objects.all().delete()

        now = datetime(2016, 9, 12, tzinfo=pytz.utc)

        has_feature.side_effect = lambda name, *a, **k: {
            'organizations:reports:deliver': True,
            'organizations:reports:prepare': True,
        }.get(name, False)

        project = self.create_project(
            organization=self.organization,
            team=self.team,
        )

        tsdb.incr(
            tsdb.models.project,
            project.id,
            now - timedelta(days=1),
        )

        member_set = set(project.team.member_set.all())

        with self.tasks():
            prepare_reports(timestamp=to_timestamp(now))
            assert len(mail.outbox) == len(member_set) == 1

            message = mail.outbox[0]
            assert self.organization.name in message.subject
Example #4
0
    def test_integration(self):
        Project.objects.all().delete()

        now = datetime(2016, 9, 12, tzinfo=pytz.utc)

        project = self.create_project(
            organization=self.organization,
            team=self.team,
            date_added=now - timedelta(days=90),
        )

        tsdb.incr(
            tsdb.models.project,
            project.id,
            now - timedelta(days=1),
        )

        member_set = set(project.team.member_set.all())

        with self.tasks():
            prepare_reports(timestamp=to_timestamp(now))
            assert len(mail.outbox) == len(member_set) == 1

            message = mail.outbox[0]
            assert self.organization.name in message.subject
Example #5
0
    def test_integration(self):
        Project.objects.all().delete()

        now = datetime(2016, 9, 12, tzinfo=pytz.utc)

        project = self.create_project(
            organization=self.organization,
            team=self.team,
            date_added=now - timedelta(days=90),
        )

        tsdb.incr(
            tsdb.models.project,
            project.id,
            now - timedelta(days=1),
        )

        member_set = set(project.team.member_set.all())

        with self.tasks():
            prepare_reports(timestamp=to_timestamp(now))
            assert len(mail.outbox) == len(member_set) == 1

            message = mail.outbox[0]
            assert self.organization.name in message.subject
Example #6
0
 def test_verify(self, logger):
     verify_prepare_reports()
     logger.error.assert_called_once_with(
         "Failed to verify that sentry.tasks.reports.prepare_reports successfully completed. "
         "Confirm whether this worked via logs")
     logger.reset_mock()
     prepare_reports()
     verify_prepare_reports()
     assert logger.error.call_count == 0
Example #7
0
 def test_verify_with_error(self, logger):
     logger.reset_mock()
     with mock.patch("sentry.tasks.reports.prepare_organization_report"
                     ) as prep_report:
         prep_report.delay.side_effect = Exception
         try:
             prepare_reports()
         except Exception:
             pass
     verify_prepare_reports()
     logger.error.assert_called_once_with(
         "Failed to verify that sentry.tasks.reports.prepare_reports successfully completed. "
         "Confirm whether this worked via logs")
Example #8
0
    def test_verify_weeks_dont_clash(self, logger):
        with freezegun.freeze_time(timedelta(days=-7)):
            prepare_reports()
            verify_prepare_reports()
            assert logger.error.call_count == 0

        logger.reset_mock()
        verify_prepare_reports()
        logger.error.assert_called_once_with(
            "Failed to verify that sentry.tasks.reports.prepare_reports successfully completed. "
            "Confirm whether this worked via logs")
        logger.reset_mock()
        prepare_reports()
        verify_prepare_reports()
        assert logger.error.call_count == 0
Example #9
0
    def test_integration(self, has_feature):
        Project.objects.all().delete()

        has_feature.side_effect = lambda name, *a, **k: {
            'organizations:reports:deliver': True,
            'organizations:reports:prepare': True,
        }.get(name, False)

        project = self.create_project(
            organization=self.organization,
            team=self.team,
        )

        member_set = set(project.team.member_set.all())

        with self.tasks():
            prepare_reports()
            assert len(mail.outbox) == len(member_set) == 1

            message = mail.outbox[0]
            assert self.organization.name in message.subject