parent
737872be7d
commit
82a953de98
27 changed files with 260 additions and 29 deletions
@ -0,0 +1,18 @@ |
|||||||
|
# Generated by Django 2.0.7 on 2019-04-05 18:28 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('payment', '0034_auto_20190327_2055'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterField( |
||||||
|
model_name='userbonus', |
||||||
|
name='action_name', |
||||||
|
field=models.CharField(blank=True, default='', max_length=20), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
# Generated by Django 2.0.7 on 2019-04-04 18:07 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('user', '0030_auto_20190318_1320'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='user', |
||||||
|
name='review_url', |
||||||
|
field=models.URLField(blank=True, default='', verbose_name='Ссылка на видеоотзыв'), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,80 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
|
||||||
|
from datetime import datetime, timedelta |
||||||
|
|
||||||
|
from django.test import TestCase |
||||||
|
from django.utils.timezone import now |
||||||
|
from factory.faker import Faker |
||||||
|
|
||||||
|
from project.tests.factories import UserFactory, CourseFactory |
||||||
|
from apps.payment.models import CoursePayment, SchoolPayment, UserBonus, Payment |
||||||
|
from apps.user.models import User |
||||||
|
|
||||||
|
|
||||||
|
class AutoAddingUserBonusTestCase(TestCase): |
||||||
|
|
||||||
|
def test_adding_user_bonuses_after_paid_more_one(self): |
||||||
|
user = UserFactory.create(role=User.USER_ROLE, first_name='', last_name='', phone='') |
||||||
|
course = CourseFactory.create(price=1000) |
||||||
|
course2 = CourseFactory.create(price=1000) |
||||||
|
self.assertEqual(user.bonus, 0, 'При создании есть бонусы') |
||||||
|
|
||||||
|
cp = CoursePayment.objects.create(user=user, course=course, access_expire=now() + timedelta(100)) |
||||||
|
cp.status = Payment.PW_PAID_STATUSES[0] |
||||||
|
cp.save() |
||||||
|
del user.__dict__['bonus'] |
||||||
|
self.assertEqual(user.bonus, 0, 'Есть бонусы после покупки 1 курса') |
||||||
|
|
||||||
|
cp2 = CoursePayment.objects.create(user=user, course=course2, access_expire=now() + timedelta(100)) |
||||||
|
cp2.status = Payment.PW_PAID_STATUSES[0] |
||||||
|
cp2.save() |
||||||
|
del user.__dict__['bonus'] |
||||||
|
self.assertEqual(user.bonus, UserBonus.AMOUNT_PAID_ONE_MORE, 'Неверное кол-во бонусов после покупки 2 курсов') |
||||||
|
|
||||||
|
cp.delete() |
||||||
|
del user.__dict__['bonus'] |
||||||
|
self.assertEqual(user.bonus, UserBonus.AMOUNT_PAID_ONE_MORE, 'Изменились бонусы после удаления оплаты 1 курса') |
||||||
|
|
||||||
|
user.bonuses.all().delete() |
||||||
|
sp = SchoolPayment.objects.create(user=user, weekdays=[1, 2, 3], add_days=False, date_start=now().date(), |
||||||
|
date_end=(now() + timedelta(30)).date(), amount=1000, status=Payment.PW_PAID_STATUSES[0]) |
||||||
|
del user.__dict__['bonus'] |
||||||
|
self.assertEqual(user.bonus, UserBonus.AMOUNT_PAID_ONE_MORE, 'Неверное кол-во бонусов после покупки курса и школы') |
||||||
|
|
||||||
|
user.bonuses.all().delete() |
||||||
|
cp2.delete() |
||||||
|
sp2 = SchoolPayment.objects.create(user=user, weekdays=[1, 2, 3], add_days=False, date_start=(now() + timedelta(31)).date(), |
||||||
|
date_end=(now() + timedelta(60)).date(), amount=1000, status=Payment.PW_PAID_STATUSES[0]) |
||||||
|
del user.__dict__['bonus'] |
||||||
|
self.assertEqual(user.bonus, UserBonus.AMOUNT_PAID_ONE_MORE, 'Неверное кол-во бонусов после покупки 2 месяцев школы') |
||||||
|
|
||||||
|
User.objects.all().delete() |
||||||
|
CoursePayment.objects.all().delete() |
||||||
|
SchoolPayment.objects.all().delete() |
||||||
|
UserBonus.objects.all().delete() |
||||||
|
|
||||||
|
def test_adding_user_bonuses_after_fill_profile(self): |
||||||
|
user = UserFactory.create(role=User.USER_ROLE, first_name='', last_name='', phone='') |
||||||
|
self.assertEqual(user.bonus, 0, 'При создании есть бонусы') |
||||||
|
|
||||||
|
user.first_name = Faker('first_name').generate({}) |
||||||
|
user.last_name = Faker('last_name').generate({}) |
||||||
|
user.phone = '+7123456789' |
||||||
|
user.save() |
||||||
|
del user.__dict__['bonus'] |
||||||
|
self.assertEqual(user.bonus, UserBonus.AMOUNT_FILL_PROFILE, 'Неверное кол-во бонусов после заполнения профиля') |
||||||
|
|
||||||
|
User.objects.all().delete() |
||||||
|
UserBonus.objects.all().delete() |
||||||
|
|
||||||
|
def test_adding_user_bonuses_after_fill_review_url(self): |
||||||
|
user = UserFactory.create(role=User.USER_ROLE, first_name='', last_name='', phone='') |
||||||
|
self.assertEqual(user.bonus, 0, 'При создании есть бонусы') |
||||||
|
|
||||||
|
user.review_url = 'http://youtube.com/review_url' |
||||||
|
user.save() |
||||||
|
del user.__dict__['bonus'] |
||||||
|
self.assertEqual(user.bonus, UserBonus.AMOUNT_HAVE_REVIEW, 'Неверное кол-во бонусов после заполнения ссылки на отзыв') |
||||||
|
|
||||||
|
User.objects.all().delete() |
||||||
|
UserBonus.objects.all().delete() |
||||||
|
After Width: | Height: | Size: 578 B |
|
After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 471 KiB After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue