示例#1
0
    def test_submit_february_2020_data_loss_ultimate_already_got_ultimate(
            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="******")

        premium = UserSubscription.objects.create(
            user=user,
            subscription=Subscription.objects.create(
                name="AstroBin Premium",
                price=1,
                group=Group.objects.create(name="astrobin_premium")),
            expires=date(2020, 2, 20))

        premium.subscribe()

        ultimate = UserSubscription.objects.create(
            user=user,
            subscription=Subscription.objects.create(
                name="AstroBin Ultimate 2020+",
                price=1,
                group=Group.objects.create(name="astrobin_ultimate_2020")),
            expires=date(2021, 3, 28))

        ultimate.subscribe()

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

        taskMock.assert_not_called()
    def test_submit_premium_offer_discount_two_users(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="*****@*****.**")
        user.userprofile.premium_offer = "premium_offer_discount_20"
        user.userprofile.premium_offer_expiration = datetime.now() + timedelta(days=1)
        user.userprofile.receive_marketing_and_commercial_material = True
        user.userprofile.save()

        user2 = User.objects.create(username="******", password="******", email="*****@*****.**")
        user2.userprofile.premium_offer = "premium_offer_discount_50"
        user2.userprofile.premium_offer_expiration = datetime.now() + timedelta(days=1)
        user2.userprofile.receive_marketing_and_commercial_material = True
        user2.userprofile.save()

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

        args, kwargs = taskMock.call_args
        taskMock.assert_called()
        self.assertEqual(["*****@*****.**", "*****@*****.**"], list(args[1]))
        user.userprofile.refresh_from_db()
        user2.userprofile.refresh_from_db()
        self.assertIsNotNone(user.userprofile.premium_offer_sent)
        self.assertIsNotNone(user2.userprofile.premium_offer_sent)
    def test_submit_premium_offer_discount_already_premium_but_expired(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="*****@*****.**")
        user.userprofile.premium_offer = "premium_offer_discount_20"
        user.userprofile.premium_offer_expiration = datetime.now() + timedelta(days=1)
        user.userprofile.receive_marketing_and_commercial_material = True
        user.userprofile.save()

        group, created = Group.objects.get_or_create(name="astrobin_premium")
        subscription, created = Subscription.objects.get_or_create(
            name="AstroBin Premium",
            price=1,
            group=group,
            category="premium")
        user_subscription, created = UserSubscription.objects.get_or_create(
            user=user,
            subscription=subscription)

        user_subscription.subscribe()

        user_subscription.expires = timezone.now() - timedelta(days=1)
        user_subscription.save()

        admin.submit_premium_offer_discount(request, BroadcastEmail.objects.filter(pk=email.pk))
        args, kwargs = taskMock.call_args
        taskMock.assert_called()
        self.assertEqual(["*****@*****.**"], list(args[1]))
    def test_submit_premium_offer_discount_already_lite(self, 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.premium_offer = "premium_offer_discount_20"
        user.userprofile.premium_offer_expiration = datetime.now() + timedelta(days=1)
        user.userprofile.receive_marketing_and_commercial_material = True
        user.userprofile.save()

        group, created = Group.objects.get_or_create(name="astrobin_premium")
        subscription, created = Subscription.objects.get_or_create(
            name="AstroBin Lite",
            price=1,
            group=group,
            category="premium")
        user_subscription, created = UserSubscription.objects.get_or_create(
            user=user,
            subscription=subscription)

        user_subscription.subscribe()

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

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

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

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

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

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

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

        taskMock.assert_not_called()
示例#7
0
    def test_submit_february_2020_data_loss_ultimate_upgrade_no_users(
            self, taskMock):
        request = RequestFactory().get("/")

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

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

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

        email = BroadcastEmail.objects.create(subject="test")
        admin = BroadcastEmailAdmin(model=BroadcastEmail, admin_site=AdminSite())
        user = Generators.user()
        user.userprofile.recovered_images_notice_sent = datetime.now()
        user.userprofile.save(keep_deleted=True)
        Generators.image(user=user, recovered=datetime.now())

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

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

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

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

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

        taskMock.assert_not_called()
    def test_submit_premium_offer_discount_no_marketing_emails(self, 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.premium_offer = "premium_offer_discount_20"
        user.userprofile.premium_offer_expiration = datetime.now() + timedelta(days=1)
        user.userprofile.save()

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

        taskMock.assert_not_called()
示例#11
0
    def test_submit_february_2020_data_loss_premium_upgrade_no_premium(
            self, messageUserMock, taskMock):
        request = RequestFactory().get("/")

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

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

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

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

        email = BroadcastEmail.objects.create(subject="test")
        admin = BroadcastEmailAdmin(model=BroadcastEmail,
                                    admin_site=AdminSite())
        user = Generators.user()
        user.userprofile.language = 'es'
        user.userprofile.save(keep_deleted=True)
        Generators.image(user=user, recovered=datetime.now())

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

        taskMock.assert_called()
        user.userprofile.refresh_from_db()
        self.assertIsNotNone(user.userprofile.recovered_images_notice_sent)
    def test_submit_premium_offer_discount_already_sent_too_recently(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.premium_offer = "premium_offer_discount_20"
        user.userprofile.premium_offer_expiration = datetime.now() + timedelta(days=1)
        user.userprofile.premium_offer_sent = sent = datetime.now() - timedelta(days=20)
        user.userprofile.receive_marketing_and_commercial_material = True
        user.userprofile.save()

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

        taskMock.assert_not_called()
        user.userprofile.refresh_from_db()
        self.assertEqual(sent, user.userprofile.premium_offer_sent)
    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()
示例#15
0
    def test_submit_february_2020_data_loss_premium_ultimate_too_early_expiration(
            self, messageUserMock, taskMock):
        request = RequestFactory().get("/")

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

        UserSubscription.objects.create(
            user=User.objects.create(username="******", password="******"),
            subscription=Subscription.objects.create(
                name="AstroBin Premium",
                price=1,
                group=Group.objects.create(name="astrobin_premium")),
            expires=date(2020, 2, 14))

        admin.submit_february_2020_data_loss_ultimate_upgrade(
            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]))