示例#1
0
    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))
示例#2
0
文件: utils.py 项目: siovene/astrobin
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)
示例#3
0
    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))
示例#4
0
    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))
示例#5
0
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