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()
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()
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()
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]))