def test_dont_send_email_notifications_for_external_versions(self): fixture.get(EmailHook, project=self.project) self.version.type = EXTERNAL self.version.save() send_notifications(self.version.pk, self.build.pk, email=True) self.assertEqual(len(mail.outbox), 0)
def test_send_notification_none_if_wrong_version_pk(self, mock_logger): self.assertFalse(Version.objects.filter(pk=345343).exists()) send_notifications(version_pk=345343, build_pk=None) mock_logger.warning.assert_called_with( 'Version not found for given kwargs. %s', {'pk': 345343}, )
def test_send_email_and_webhook__notification(self): fixture.get(EmailHook, project=self.project) fixture.get(WebHook, project=self.project) with patch('readthedocs.projects.tasks.requests.post') as mock: mock.return_value = None send_notifications(self.version.pk, self.build.pk) mock.assert_called_once() self.assertEqual(len(mail.outbox), 1)
def test_dont_send_webhook_notifications_for_external_versions(self): fixture.get(WebHook, project=self.project) self.version.type = EXTERNAL self.version.save() with patch('readthedocs.projects.tasks.requests.post') as mock: mock.return_value = None send_notifications(self.version.pk, self.build.pk) mock.assert_not_called() self.assertEqual(len(mail.outbox), 0)
def test_send_webhook_notification_has_content_type_header(self): hook = fixture.get(WebHook, project=self.project) data = json.dumps({ 'name': self.project.name, 'slug': self.project.slug, 'build': { 'id': self.build.id, 'commit': self.build.commit, 'state': self.build.state, 'success': self.build.success, 'date': self.build.date.strftime('%Y-%m-%d %H:%M:%S'), }, }) with patch('readthedocs.projects.tasks.requests.post') as mock: mock.return_value = None send_notifications(self.version.pk, self.build.pk) mock.assert_called_once_with( hook.url, data=data, headers={'content-type': 'application/json'})
def test_send_email_notification(self): fixture.get(EmailHook, project=self.project) send_notifications(self.version.pk, self.build.pk) self.assertEqual(len(mail.outbox), 1)
def test_send_notification_none(self): send_notifications(self.version.pk, self.build.pk) self.assertEqual(len(mail.outbox), 0)
def test_send_notification_none_if_wrong_version_pk(self, mock_logger): self.assertFalse(Version.objects.filter(pk=345343).exists()) send_notifications(version_pk=345343, build_pk=None) mock_logger.warning.assert_called_with("Version not found for given kwargs. {'pk': 345343}")