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
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
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
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
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
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")
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
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