-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconftest.py
73 lines (64 loc) · 2.99 KB
/
conftest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import pytest
from flask import url_for
from werkzeug.security import generate_password_hash
import wsgi as app_module
from config import TestingConfig
from application import db
from application.models.user import User
from application.models.category import Category
from application.models.currency import Currency
from application.models.user_categories_limits_asc import UserCategoriesLimitsAsc
@pytest.fixture
def app():
app_module.app.config.from_object(TestingConfig)
with app_module.app.app_context():
db.create_all()
yield app_module.app
with app_module.app.app_context():
db.session.remove()
db.drop_all()
@pytest.fixture
def logged_in_client(client):
db.session.add(User(username='etimesoy', full_name='Руслан Газизов', email='[email protected]',
password=generate_password_hash('123456', method='sha256')))
for category_id in range(1, 7):
user_categories_limits_asc = UserCategoriesLimitsAsc(user_id=1, category_id=category_id)
db.session.add(user_categories_limits_asc)
db.session.add(Currency(name='Russian Ruble', sign='₽', abbreviation='RUB'))
db.session.add(Currency(name='US Dollar', sign='$', abbreviation='USD'))
db.session.add(Currency(name='Euro', sign='€', abbreviation='EUR'))
db.session.add(Category(name='transport', image='transport.png'))
db.session.add(Category(name='shopping', image='shopping.png'))
db.session.add(Category(name='groceries', image='groceries.png'))
db.session.add(Category(name='health', image='health.png'))
db.session.add(Category(name='eating out', image='eating_out.png'))
db.session.add(Category(name='household', image='household.png'))
db.session.commit()
client.post(url_for('auth_bp.login'), data=dict(username='etimesoy', password='123456'))
setattr(client, 'id', 1)
setattr(client, 'username', 'etimesoy')
yield client
client.get(url_for('auth_bp.logout'))
@pytest.fixture()
def logged_in_another_client(client):
db.session.add(User(username='test_username', full_name='Test User', email='[email protected]',
password=generate_password_hash('qwerty', method='sha256')))
db.session.commit()
client.post(url_for('auth_bp.login'), data=dict(username='test_username', password='qwerty'))
setattr(client, 'email', '[email protected]')
setattr(client, 'username', 'test_username')
yield client
client.get(url_for('auth_bp.logout'))
@pytest.fixture()
def logged_in_client_with_limit(logged_in_client):
user_category_limit_asc = UserCategoriesLimitsAsc.query.filter_by(
user_id=logged_in_client.id,
category_id=4
).first()
user_category_limit_asc.limit_size = 500
user_category_limit_asc.limit_year_number = 2021
user_category_limit_asc.limit_month_number = 10
user_category_limit_asc.currency_id = 2
setattr(logged_in_client, 'limit_category', 'health')
setattr(logged_in_client, 'limit_size', 500)
yield logged_in_client