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