示例#1
0
    def test_send_search_digest_send_if_none(self):
        SavedSearchDigestFactory(user=self.user, send_if_none=True)
        send_search_digests()
        self.assertEqual(len(mail.outbox), 0)

        SavedSearchFactory(user=self.user)
        send_search_digests()
        self.assertEqual(len(mail.outbox), 1)
示例#2
0
    def test_send_search_digest_send_if_none(self):
        SavedSearchDigestFactory(user=self.user, send_if_none=True)
        send_search_digests()
        self.assertEqual(len(mail.outbox), 0)

        SavedSearchFactory(user=self.user)
        send_search_digests()
        self.assertEqual(len(mail.outbox), 1)
示例#3
0
    def test_fix_fixable_search(self):
        self.patcher.stop()
        SavedSearchDigestFactory(user=self.user)
        search = SavedSearchFactory(user=self.user, feed='')
        self.assertFalse(search.feed)

        # Celery raises a retry that makes the test fail. In reality
        # everything is fine, so ignore the retry-fail.
        try:
            send_search_digests()
        except RetryTaskError:
            pass
        self.assertEqual(len(mail.outbox), 0)

        search = SavedSearch.objects.get(pk=search.pk)
        self.assertTrue(search.is_active)
        self.assertTrue(search.feed)
示例#4
0
    def test_disable_bad_search(self):
        self.patcher.stop()
        SavedSearchDigestFactory(user=self.user)
        search = SavedSearchFactory(user=self.user, feed='',
                                    url='http://example.com')
        self.assertFalse(search.feed)

        # Celery raises a retry that makes the test fail. In reality
        # everything is fine, so ignore the retry-fail.
        try:
            send_search_digests()
        except RetryTaskError:
            pass

        email = mail.outbox.pop()
        search = SavedSearch.objects.get(pk=search.pk)
        self.assertFalse(search.is_active)

        self.assertTrue('has failed URL validation' in email.body)
示例#5
0
    def test_errors_dont_disable_searches(self):
        """
        We should retry sending saved searches but exceeding our maximum
        number of retries should not disable those searches.
        """
        self.mock_urlopen.side_effect = ValueError("bork bork bork")

        SavedSearchDigestFactory(user=self.user)
        search = SavedSearchFactory(user=self.user, feed='www.my.jobs')

        # Celery raises a retry that makes the test fail. In reality
        # everything is fine, so ignore the retry.
        try:
            send_search_digests()
        except RetryTaskError:
            pass
        self.assertEqual(len(mail.outbox), 0)

        search = SavedSearch.objects.get(pk=search.pk)
        self.assertTrue(search.is_active)
示例#6
0
    def test_errors_dont_disable_searches(self):
        """
        We should retry sending saved searches but exceeding our maximum
        number of retries should not disable those searches.
        """
        self.mock_urlopen.side_effect = ValueError("bork bork bork")

        SavedSearchDigestFactory(user=self.user)
        search = SavedSearchFactory(user=self.user, feed='www.my.jobs')

        # Celery raises a retry that makes the test fail. In reality
        # everything is fine, so ignore the retry.
        try:
            send_search_digests()
        except RetryTaskError:
            pass
        self.assertEqual(len(mail.outbox), 0)

        search = SavedSearch.objects.get(pk=search.pk)
        self.assertTrue(search.is_active)
示例#7
0
    def test_send_search_digest_email(self):
        SavedSearchDigestFactory(user=self.user)
        send_search_digests()
        self.assertEqual(len(mail.outbox), 0)
        self.assertEqual(SavedSearchLog.objects.count(), 1)
        log = SavedSearchLog.objects.get()
        self.assertTrue('No saved searches' in log.reason)
        self.assertFalse(log.was_sent)

        search1 = SavedSearchFactory(user=self.user)
        self.assertIsNone(SavedSearch.objects.get(pk=search1.pk).last_sent)
        send_search_digests()
        self.assertIsNotNone(SavedSearch.objects.get(pk=search1.pk).last_sent)
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(SavedSearchLog.objects.count(), 2)
        log = SavedSearchLog.objects.last()
        self.assertTrue(log.was_sent)

        search2 = SavedSearchFactory(user=self.user)
        self.assertIsNone(SavedSearch.objects.get(pk=search2.pk).last_sent)
        send_search_digests()
        self.assertIsNotNone(SavedSearch.objects.get(pk=search2.pk).last_sent)
        self.assertEqual(len(mail.outbox), 2)
        self.assertEqual(SavedSearchLog.objects.count(), 3)
        log = SavedSearchLog.objects.last()
        self.assertTrue(log.was_sent)

        email = mail.outbox.pop()
        self.assertEqual(email.from_email, 'My.jobs Saved Search <*****@*****.**>')
        self.assertEqual(email.to, [self.user.email])
        self.assertEqual(email.subject, "Your Saved Search Digest")
        self.assertTrue("table" in email.body)
        self.assertTrue(email.to[0] in email.body)
示例#8
0
    def test_send_search_digest_email(self):
        SavedSearchDigestFactory(user=self.user)
        send_search_digests()
        self.assertEqual(len(mail.outbox), 0)
        self.assertEqual(SavedSearchLog.objects.count(), 1)
        log = SavedSearchLog.objects.get()
        self.assertTrue('No saved searches' in log.reason)
        self.assertFalse(log.was_sent)

        search1 = SavedSearchFactory(user=self.user)
        self.assertIsNone(search1.last_sent)
        send_search_digests()
        self.assertIsNotNone(SavedSearch.objects.get(pk=search1.pk).last_sent)
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(SavedSearchLog.objects.count(), 2)
        log = SavedSearchLog.objects.last()
        self.assertTrue(log.was_sent)

        search2 = SavedSearchFactory(user=self.user)
        self.assertIsNone(search2.last_sent)
        send_search_digests()
        self.assertIsNotNone(SavedSearch.objects.get(pk=search2.pk).last_sent)
        self.assertEqual(len(mail.outbox), 2)
        self.assertEqual(SavedSearchLog.objects.count(), 3)
        log = SavedSearchLog.objects.last()
        self.assertTrue(log.was_sent)

        email = mail.outbox.pop()
        self.assertEqual(email.from_email,
                         'My.jobs Saved Search <*****@*****.**>')
        self.assertEqual(email.to, [self.user.email])
        self.assertEqual(email.subject, "Your Saved Search Digest")
        self.assertTrue("table" in email.body)
        self.assertTrue(email.to[0] in email.body)
示例#9
0
    def test_send_search_email(self):
        SavedSearchDigestFactory(user=self.user,
                                 is_active=False)
        search = SavedSearchFactory(user=self.user, is_active=True,
                                    frequency='D',
                                    url='www.my.jobs/jobs?q=new+search')
        send_search_digests()
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(SavedSearchLog.objects.count(), 1)
        log = SavedSearchLog.objects.get()
        self.assertTrue(log.was_sent)

        email = mail.outbox.pop()
        self.assertEqual(email.from_email, 'My.jobs Saved Search <*****@*****.**>')
        self.assertEqual(email.to, [self.user.email])
        self.assertEqual(email.subject, search.label)
        self.assertTrue("table" in email.body)
        self.assertTrue(email.to[0] in email.body)
        self.assertNotEqual(email.body.find(search.url),
                            -1,
                            "Search url was not found in email body")
        self.assertTrue("Your resume is %s%% complete" %
                        self.user.profile_completion in email.body)
示例#10
0
    def test_send_search_email(self):
        SavedSearchDigestFactory(user=self.user, is_active=False)
        search = SavedSearchFactory(user=self.user,
                                    is_active=True,
                                    frequency='D',
                                    url='www.my.jobs/jobs?q=new+search')
        send_search_digests()
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(SavedSearchLog.objects.count(), 1)
        log = SavedSearchLog.objects.get()
        self.assertTrue(log.was_sent)

        email = mail.outbox.pop()
        self.assertEqual(email.from_email,
                         'My.jobs Saved Search <*****@*****.**>')
        self.assertEqual(email.to, [self.user.email])
        self.assertEqual(email.subject, search.label)
        self.assertTrue("table" in email.body)
        self.assertTrue(email.to[0] in email.body)
        self.assertNotEqual(email.body.find(search.url), -1,
                            "Search url was not found in email body")
        self.assertTrue("Your profile is %s%% complete" %
                        self.user.profile_completion in email.body)