lavkach3

Форк
0
/
test_user.py 
130 строк · 4.6 Кб
1
from unittest import mock
2

3
import pytest
4
from sqlalchemy import func, select
5
@pytest.mark.asyncio
6
async def test_signup(async_client, headers):
7
    request_data = {
8
        "user": {
9
            "email": "SanyokGarbunek@vas.ru",
10
            "country": "US",
11
            "locale": "en_US",
12
            "phone_number": "+449534771093",
13
            "nickname": "Sanya",
14
            "password1": "string",
15
            "password2": "string"
16
        },
17
        "company": {
18
            "title": "GORA I KOMUTA",
19
            "locale": "en_US",
20
            "country": "US",
21
            "currency": "USD"
22
        }
23
    }
24

25
    response = await async_client.post("/api/basic/user/signup", json=request_data)
26
    assert response.status_code == 200
27

28
@pytest.mark.asyncio
29
async def test_list_filter_company(async_client, headers):
30
    """
31
    Проверяем что работает список с фильтрами
32
    """
33
    response = await async_client.get(
34
        "/api/basic/user",
35
        headers=headers['superadmin'],
36
        params={'size': 100, 'search': 'admin@admin.com'}
37
    )
38
    assert response.status_code == 200
39
    data = response.json()
40
    assert data['data'][0]['nickname'] == 'admin'
41

42
    response = await async_client.get(
43
        "/api/basic/user",
44
        headers=headers['superadmin'],
45
        params={'size': 100, 'search': 'vasya'}
46
    )
47
    assert response.status_code == 200
48
    data = response.json()
49
    assert len(data.get('data')) == 2
50

51
@pytest.mark.asyncio
52
async def test_user_edit(async_client, headers):
53
    response = await async_client.get(
54
        "/api/basic/user",
55
        headers=headers['superadmin'],
56
        params={'size': 100, 'search': 'admin@admin.com'}
57
    )
58
    data = response.json()
59
    user = data['data'][0]
60
    assert user['nickname'] == 'admin'
61
    body = {
62
        'nickname': 'admin_edited'
63
    }
64
    user_id = user['id']
65
    response_edit = await async_client.put(f'/api/basic/user/{user_id}', json=body, headers=headers['superadmin'])
66
    data = response_edit.json()
67
    assert data['nickname'] == 'admin_edited'
68
    assert response.status_code == 200
69

70
@pytest.mark.asyncio
71
async def test_user_login(async_client, headers):
72
    body = {
73
        "email": "company_support@gmail.com",
74
        "password": "1402"
75
    }
76
    response = await async_client.post(f'/api/basic/user/login', json=body)
77
    assert response.status_code == 200
78
    data = response.json()
79
    assert data['nickname'] == 'Support vasya'
80

81
@pytest.mark.asyncio
82
async def test_user_crud(async_client, headers, companies, roles):
83
    """
84
    Полный тест круда модельки
85
    """
86
    # Создаем
87
    body = {
88
        "email": "new@yandex.ru",
89
        "country": "US",
90
        "locale": "en_US",
91
        "phone_number": "449534771093",
92
        "nickname": "new_support_user_for_company_1",
93
        "companies": [
94
            companies[0].id.hex
95
        ],
96
        "roles": [
97
            roles.get('support').id.hex
98
        ],
99
        "password1": "1402",
100
        "password2": "1402"
101
    }
102
    response = await async_client.post(f'/api/basic/user', json=body, headers=headers['company_admin'])
103
    assert response.status_code == 200
104
    data = response.json()
105
    assert data['nickname'] == 'new_support_user_for_company_1'
106

107
    # чекаем что можем изменять
108
    user_id = data['id']
109
    body = {
110
        'nickname': 'new_support_user_for_company_1_edited'
111
    }
112
    response_edit = await async_client.put(f'/api/basic/user/{user_id}', json=body, headers=headers['superadmin'])
113
    data_create = response_edit.json()
114
    assert data_create['nickname'] == 'new_support_user_for_company_1_edited'
115
    assert response.status_code == 200
116
    # Чекаем что появился
117
    response_get = await async_client.get(f'/api/basic/user/{user_id}', headers=headers['superadmin'])
118
    data_get = response_get.json()
119
    assert data_get['nickname'] == 'new_support_user_for_company_1_edited'
120
    assert response_get.status_code == 200
121
    # Чекаем удаление
122
    response_edit = await async_client.delete(f'/api/basic/user/{user_id}',  headers=headers['superadmin'])
123
    assert response_edit.status_code == 200
124

125
    # Чекаем адекватную ошибку при удалении если нет записи
126
    responce_delete_404 = await async_client.delete(f'/api/basic/user/{user_id}',  headers=headers['superadmin'])
127
    assert responce_delete_404.status_code == 404
128
    # Чекаем адекватную ошибку при чтении если нет записи
129
    responce_get_404 = await async_client.get(f'/api/basic/user/{user_id}', headers=headers['superadmin'])
130
    assert responce_get_404.status_code == 404
131

132

133

134

135

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.