def test_submit_inactive_account_reminder_no_users(self, taskMock):
        request = RequestFactory().get("/")

        email = BroadcastEmail.objects.create(subject="test")
        admin = BroadcastEmailAdmin(model=BroadcastEmail,
                                    admin_site=AdminSite())

        admin.submit_inactive_email_reminder(
            request, BroadcastEmail.objects.filter(pk=email.pk))

        taskMock.assert_not_called()
    def test_submit_inactive_account_reminder_too_recent_image(
            self, messageUserMock, taskMock):
        request = RequestFactory().get("/")

        email = BroadcastEmail.objects.create(subject="test")
        admin = BroadcastEmailAdmin(model=BroadcastEmail,
                                    admin_site=AdminSite())

        user = User.objects.create(username="******", password="******")
        Image.objects.create(user=user)

        admin.submit_inactive_email_reminder(
            request, BroadcastEmail.objects.filter(pk=email.pk))

        taskMock.assert_not_called()
    def test_submit_inactive_account_reminder_already_sent(
            self, messageUserMock, taskMock):
        request = RequestFactory().get("/")

        email = BroadcastEmail.objects.create(subject="test")
        admin = BroadcastEmailAdmin(model=BroadcastEmail,
                                    admin_site=AdminSite())

        user = User.objects.create(username="******", password="******")
        user.userprofile.inactive_account_reminder_sent = timezone.now(
        ) - timedelta(days=7)
        user.userprofile.save()
        image = Image.objects.create(user=user)
        image.uploaded = image.uploaded - timedelta(61)
        image.save()

        admin.submit_inactive_email_reminder(
            request, BroadcastEmail.objects.filter(pk=email.pk))

        taskMock.assert_not_called()
    def test_submit_inactive_account_reminder_success(self, messageUserMock,
                                                      taskMock):
        request = RequestFactory().get("/")

        email = BroadcastEmail.objects.create(subject="test")
        admin = BroadcastEmailAdmin(model=BroadcastEmail,
                                    admin_site=AdminSite())

        user = User.objects.create(username="******",
                                   password="******",
                                   email="*****@*****.**")
        image = Image.objects.create(user=user)
        image.uploaded = image.uploaded - timedelta(61)
        image.save()

        admin.submit_inactive_email_reminder(
            request, BroadcastEmail.objects.filter(pk=email.pk))

        args, kwargs = taskMock.call_args
        taskMock.assert_called()
        self.assertEqual(["*****@*****.**"], list(args[1]))