def test_with_compensation_1_mo(self): user = User.objects.create_user(username="******", password="******") premium = Generators.premium_subscription( user, "AstroBin Premium (autorenew)") ultimate = Generators.premium_subscription(user, "AstroBin Ultimate 2020+") premium.expires = date.today() + timedelta(days=30) premium.unsubscribe() premium.save() ultimate.expires = date.today() ultimate.save() self.assertTrue(is_ultimate_2020(user)) self.assertFalse(is_premium(user)) DataLossCompensationRequest.objects.create( user=user, requested_compensation="1_MO_ULTIMATE") reactivate_previous_subscription_when_ultimate_compensation_expires.apply( ) ultimate.expires = date.today() - timedelta(1) ultimate.save() self.assertFalse(is_ultimate_2020(user)) self.assertTrue(is_premium(user))
def has_access_to_premium_group_features(user): # type: (User) -> bool return is_lite(user) \ or is_premium(user) \ or is_lite_2020(user) \ or is_premium_2020(user) \ or is_ultimate_2020(user)
def test_submit_6_mo_ultimate(self): user = User.objects.create_user('test', '*****@*****.**', 'password') premium = Generators.premium_subscription(user, 'AstroBin Premium') premium.expires = datetime(2020, 2, 16) premium.save() self.client.login(username='******', password='******') response = self.client.post( reverse('astrobin_apps_premium.data_loss_compensation_request'), { 'requested_compensation': '6_MO_ULTIMATE' }) self.assertRedirects( response, reverse('astrobin_apps_premium.data_loss_compensation_request_success'), status_code=302, target_status_code=200) compensation_request = DataLossCompensationRequest.objects.get(user=user) self.assertEquals(compensation_request.requested_compensation, '6_MO_ULTIMATE') ultimate = get_object_or_None(UserSubscription, user=user, subscription__name='AstroBin Ultimate 2020+') self.assertIsNotNone(ultimate) self.assertTrue(ultimate.active) self.assertTrue(ultimate.cancelled) self.assertTrue(ultimate.expires > date.today() + timedelta(days=179)) self.assertTrue(ultimate.expires < date.today() + timedelta(days=181)) self.assertTrue(is_ultimate_2020(user))
def test_without_compensation_request(self): user = User.objects.create_user(username="******", password="******") premium = Generators.premium_subscription( user, "AstroBin Premium (autorenew)") ultimate = Generators.premium_subscription(user, "AstroBin Ultimate 2020+") premium.expires = date.today() + timedelta(days=30) premium.unsubscribe() ultimate.expires = date.today() self.assertTrue(is_ultimate_2020(user)) self.assertFalse(is_premium(user)) reactivate_previous_subscription_when_ultimate_compensation_expires.apply( ) self.assertTrue(is_ultimate_2020(user)) self.assertFalse(is_premium(user))
def show_ads(user): if not settings.ADS_ENABLED: return False if is_donor(user) and not user.userprofile.allow_astronomy_ads: return False if is_lite(user) or is_premium(user): return False if (is_premium_2020(user) or is_ultimate_2020(user)) and not user.userprofile.allow_astronomy_ads: return False return True