pyaterochka-api 0.1.8__py3-none-any.whl → 0.1.9.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyaterochka_api
3
- Version: 0.1.8
3
+ Version: 0.1.9.1
4
4
  Summary: A Python API client for Pyaterochka store catalog
5
5
  Home-page: https://github.com/Open-Inflation/pyaterochka_api
6
6
  Author: Miskler
@@ -28,7 +28,7 @@ Requires-Dist: tqdm
28
28
  Provides-Extra: tests
29
29
  Requires-Dist: pytest; extra == "tests"
30
30
  Requires-Dist: pytest-asyncio; extra == "tests"
31
- Requires-Dist: snapshottest~=1.0.0a1; extra == "tests"
31
+ Requires-Dist: pytest-typed-schema-shot; extra == "tests"
32
32
  Dynamic: author
33
33
  Dynamic: classifier
34
34
  Dynamic: description
@@ -48,6 +48,7 @@ Pyaterochka (Пятёрочка) - https://5ka.ru/
48
48
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyaterochka_api)
49
49
  ![PyPI - Package Version](https://img.shields.io/pypi/v/pyaterochka_api?color=blue)
50
50
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/pyaterochka_api?label=PyPi%20downloads)](https://pypi.org/project/pyaterochka-api/)
51
+ [![API Documentation](https://img.shields.io/badge/API-Documentation-blue)](https://open-inflation.github.io/pyaterochka_api/)
51
52
  [![Discord](https://img.shields.io/discord/792572437292253224?label=Discord&labelColor=%232c2f33&color=%237289da)](https://discord.gg/UnJnGHNbBp)
52
53
  [![Telegram](https://img.shields.io/badge/Telegram-24A1DE)](https://t.me/miskler_dev)
53
54
 
@@ -146,6 +147,12 @@ if __name__ == '__main__':
146
147
  asyncio.run(main())
147
148
  ```
148
149
 
150
+ ### API Documentation / Документация API
151
+
152
+ Автоматически сгенерированная документация API доступна по ссылке: [API Documentation](https://open-inflation.github.io/pyaterochka_api/)
153
+
154
+ Документация содержит подробную структуру всех ответов сервера в виде схем (на базе тестов).
155
+
149
156
  ### Report / Обратная связь
150
157
 
151
158
  If you have any problems using it /suggestions, do not hesitate to write to the [project's GitHub](https://github.com/Open-Inflation/pyaterochka_api/issues)!
@@ -0,0 +1,10 @@
1
+ pyaterochka_api/__init__.py,sha256=6XnalFPUumYqDJFyXw2puejJ612o-D1tYjZ_IjQ7Hx0,108
2
+ pyaterochka_api/api.py,sha256=KEr28n1aH69cVo0ztHCgB4ANVVZ-CezLWYTiPpfAmoc,7793
3
+ pyaterochka_api/enums.py,sha256=JnX4JiHzXyRo4se8sCFx0LyqcKlXXED0VcA0xI7r_ZI,621
4
+ pyaterochka_api/manager.py,sha256=yQw0njGCsropysT-_siuyNxXNpX-VJKOcVD8b-aV48I,10765
5
+ pyaterochka_api/tools.py,sha256=xFOThNRClX4u0cMfmQ5fVQKLM2Fn-rBAekzo_yBvRnQ,4447
6
+ pyaterochka_api-0.1.9.1.dist-info/licenses/LICENSE,sha256=Ee_P5XQUYoJuffzRL24j4GWpqgoWphUOKswpB2f9HcQ,1071
7
+ pyaterochka_api-0.1.9.1.dist-info/METADATA,sha256=ZQOhWOFzmF9nr2LfutfAVfgkzorB_OYb4sJmtpHtruI,9857
8
+ pyaterochka_api-0.1.9.1.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
9
+ pyaterochka_api-0.1.9.1.dist-info/top_level.txt,sha256=NTJa4yZBzfmC9B5FQuFETD9ngGd_KYZ3Hjfw_33aDTE,16
10
+ pyaterochka_api-0.1.9.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.4.0)
2
+ Generator: setuptools (80.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,15 +0,0 @@
1
- pyaterochka_api/__init__.py,sha256=6XnalFPUumYqDJFyXw2puejJ612o-D1tYjZ_IjQ7Hx0,108
2
- pyaterochka_api/api.py,sha256=KEr28n1aH69cVo0ztHCgB4ANVVZ-CezLWYTiPpfAmoc,7793
3
- pyaterochka_api/enums.py,sha256=JnX4JiHzXyRo4se8sCFx0LyqcKlXXED0VcA0xI7r_ZI,621
4
- pyaterochka_api/manager.py,sha256=yQw0njGCsropysT-_siuyNxXNpX-VJKOcVD8b-aV48I,10765
5
- pyaterochka_api/tools.py,sha256=xFOThNRClX4u0cMfmQ5fVQKLM2Fn-rBAekzo_yBvRnQ,4447
6
- pyaterochka_api-0.1.8.dist-info/licenses/LICENSE,sha256=Ee_P5XQUYoJuffzRL24j4GWpqgoWphUOKswpB2f9HcQ,1071
7
- tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- tests/api_tests.py,sha256=XgOFu8yUKYqeRZ6QuQE-ZjMuPreQUb9y8iR7bDw-DOE,2763
9
- tests/tools_tests.py,sha256=UKWVHu-QkEzc7iLsm5wIhA17FLq3E7SxwkLHc5GEI2M,1040
10
- tests/snapshots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- tests/snapshots/snap_base_tests.py,sha256=ryxaXZI10UonxclonGuLatjS3ZNMzkUeyz8uB0U5PdQ,27356
12
- pyaterochka_api-0.1.8.dist-info/METADATA,sha256=3rFmk1lprX-iELCmBvC4-wFZE-EIOLx7UlZJECjgr_8,9305
13
- pyaterochka_api-0.1.8.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
14
- pyaterochka_api-0.1.8.dist-info/top_level.txt,sha256=PXTSi8y2C5_Mz20pJJFqOUBnjAIAXP_cc38mthvJ2x4,22
15
- pyaterochka_api-0.1.8.dist-info/RECORD,,
tests/__init__.py DELETED
File without changes
tests/api_tests.py DELETED
@@ -1,66 +0,0 @@
1
- import pytest
2
- from pyaterochka_api import Pyaterochka
3
- from io import BytesIO
4
- from snapshottest.pytest import SnapshotTest
5
-
6
- def gen_schema(data):
7
- """Генерирует схему (типы данных вместо значений)."""
8
- if isinstance(data, dict):
9
- return {k: gen_schema(v) for k, v in data.items()}
10
- elif isinstance(data, list):
11
- return [gen_schema(data[0])] if data else []
12
- else:
13
- return type(data).__name__
14
-
15
- @pytest.mark.asyncio
16
- async def test_list(snapshot: SnapshotTest):
17
- async with Pyaterochka(debug=True, trust_env=True) as API:
18
- categories = await API.categories_list(subcategories=True)
19
- snapshot.assert_match(gen_schema(categories), "categories_list")
20
-
21
- result = await API.products_list(category_id=categories[0]['id'], limit=5)
22
- snapshot.assert_match(gen_schema(result), "products_list")
23
-
24
- @pytest.mark.asyncio
25
- async def test_product_info(snapshot: SnapshotTest):
26
- async with Pyaterochka(trust_env=True) as API:
27
- result = await API.product_info(43347)
28
- snapshot.assert_match(gen_schema(result), "product_info")
29
-
30
- @pytest.mark.asyncio
31
- async def test_get_news(snapshot: SnapshotTest):
32
- async with Pyaterochka(debug=True, trust_env=True) as API:
33
- result = await API.get_news(limit=5)
34
- snapshot.assert_match(gen_schema(result), "get_news")
35
-
36
- @pytest.mark.asyncio
37
- async def test_find_store(snapshot: SnapshotTest):
38
- async with Pyaterochka(debug=True, trust_env=True) as API:
39
- categories = await API.find_store(longitude=37.63156, latitude=55.73768)
40
- snapshot.assert_match(gen_schema(categories), "store_info")
41
-
42
- @pytest.mark.asyncio
43
- async def test_download_image(snapshot: SnapshotTest):
44
- async with Pyaterochka(debug=True, trust_env=True) as API:
45
- result = await API.download_image("https://photos.okolo.app/product/1392827-main/800x800.jpeg")
46
- assert isinstance(result, BytesIO)
47
- assert result.getvalue()
48
- snapshot.assert_match("image downloaded", "download_image")
49
-
50
- @pytest.mark.asyncio
51
- async def test_set_debug(snapshot: SnapshotTest):
52
- async with Pyaterochka(debug=True) as API:
53
- API.debug = False
54
- snapshot.assert_match(API.debug, "set_debug")
55
-
56
- @pytest.mark.asyncio
57
- async def test_rebuild_connection(snapshot: SnapshotTest):
58
- async with Pyaterochka(debug=True, trust_env=True) as API:
59
- await API.rebuild_connection()
60
- snapshot.assert_match("connection has been rebuilt", "rebuild_connection")
61
-
62
- #@pytest.mark.asyncio
63
- #async def test_get_config(snapshot: SnapshotTest):
64
- # async with Pyaterochka(debug=True, trust_env=True, timeout=30) as API:
65
- # result = await API.get_config()
66
- # snapshot.assert_match(gen_schema(result), "get_config")
File without changes
@@ -1,817 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # snapshottest: v1 - https://goo.gl/zC4yUc
3
- from __future__ import unicode_literals
4
-
5
- from snapshottest import Snapshot
6
-
7
-
8
- snapshots = Snapshot()
9
-
10
- snapshots['test_download_image download_image'] = 'image downloaded'
11
-
12
- snapshots['test_find_store store_info'] = {
13
- 'has_24h_delivery': 'bool',
14
- 'has_delivery': 'bool',
15
- 'sap_code': 'str',
16
- 'shop_address': 'str',
17
- 'store_city': 'str'
18
- }
19
-
20
- snapshots['test_get_config get_config'] = {
21
- '11': 'str',
22
- '13': 'str',
23
- '15': 'str',
24
- '292929': 'str',
25
- 'AD_TOOLTIP_CLOSING_TIME': 'str',
26
- 'CASHBACK_LINK': 'str',
27
- 'CATALOG_SERVER_URL': 'str',
28
- 'CDN_SERVICE_URL': 'str',
29
- 'CHAT_URL': 'str',
30
- 'CI': 'str',
31
- 'CITA_SERVER_URL': 'str',
32
- 'CI_API_V4_URL': 'str',
33
- 'CI_BUILDS_DIR': 'str',
34
- 'CI_BUILD_BEFORE_SHA': 'str',
35
- 'CI_BUILD_ID': 'str',
36
- 'CI_BUILD_NAME': 'str',
37
- 'CI_BUILD_REF': 'str',
38
- 'CI_BUILD_REF_NAME': 'str',
39
- 'CI_BUILD_REF_SLUG': 'str',
40
- 'CI_BUILD_STAGE': 'str',
41
- 'CI_BUILD_TAG': 'str',
42
- 'CI_BUILD_TOKEN': 'str',
43
- 'CI_COMMIT_AUTHOR': 'str',
44
- 'CI_COMMIT_BEFORE_SHA': 'str',
45
- 'CI_COMMIT_DESCRIPTION': 'str',
46
- 'CI_COMMIT_MESSAGE': 'str',
47
- 'CI_COMMIT_REF_NAME': 'str',
48
- 'CI_COMMIT_REF_PROTECTED': 'str',
49
- 'CI_COMMIT_REF_SLUG': 'str',
50
- 'CI_COMMIT_SHA': 'str',
51
- 'CI_COMMIT_SHORT_SHA': 'str',
52
- 'CI_COMMIT_TAG': 'str',
53
- 'CI_COMMIT_TIMESTAMP': 'str',
54
- 'CI_COMMIT_TITLE': 'str',
55
- 'CI_CONCURRENT_ID': 'str',
56
- 'CI_CONCURRENT_PROJECT_ID': 'str',
57
- 'CI_CONFIG_PATH': 'str',
58
- 'CI_DEFAULT_BRANCH': 'str',
59
- 'CI_DISPOSABLE_ENVIRONMENT': 'str',
60
- 'CI_JOB_ID': 'str',
61
- 'CI_JOB_IMAGE': 'str',
62
- 'CI_JOB_JWT': 'str',
63
- 'CI_JOB_JWT_V1': 'str',
64
- 'CI_JOB_JWT_V2': 'str',
65
- 'CI_JOB_NAME': 'str',
66
- 'CI_JOB_STAGE': 'str',
67
- 'CI_JOB_STARTED_AT': 'str',
68
- 'CI_JOB_STATUS': 'str',
69
- 'CI_JOB_TOKEN': 'str',
70
- 'CI_JOB_URL': 'str',
71
- 'CI_NODE_TOTAL': 'str',
72
- 'CI_PAGES_DOMAIN': 'str',
73
- 'CI_PAGES_URL': 'str',
74
- 'CI_PIPELINE_CREATED_AT': 'str',
75
- 'CI_PIPELINE_ID': 'str',
76
- 'CI_PIPELINE_IID': 'str',
77
- 'CI_PIPELINE_SOURCE': 'str',
78
- 'CI_PIPELINE_URL': 'str',
79
- 'CI_PROJECT_CLASSIFICATION_LABEL': 'str',
80
- 'CI_PROJECT_DESCRIPTION': 'str',
81
- 'CI_PROJECT_DIR': 'str',
82
- 'CI_PROJECT_ID': 'str',
83
- 'CI_PROJECT_NAME': 'str',
84
- 'CI_PROJECT_NAMESPACE': 'str',
85
- 'CI_PROJECT_PATH': 'str',
86
- 'CI_PROJECT_PATH_SLUG': 'str',
87
- 'CI_PROJECT_REPOSITORY_LANGUAGES': 'str',
88
- 'CI_PROJECT_ROOT_NAMESPACE': 'str',
89
- 'CI_PROJECT_TITLE': 'str',
90
- 'CI_PROJECT_URL': 'str',
91
- 'CI_PROJECT_VISIBILITY': 'str',
92
- 'CI_REGISTRY_PASSWORD': 'str',
93
- 'CI_REGISTRY_USER': 'str',
94
- 'CI_REPOSITORY_URL': 'str',
95
- 'CI_RUNNER_DESCRIPTION': 'str',
96
- 'CI_RUNNER_EXECUTABLE_ARCH': 'str',
97
- 'CI_RUNNER_ID': 'str',
98
- 'CI_RUNNER_REVISION': 'str',
99
- 'CI_RUNNER_SHORT_TOKEN': 'str',
100
- 'CI_RUNNER_VERSION': 'str',
101
- 'CI_SERVER': 'str',
102
- 'CI_SERVER_HOST': 'str',
103
- 'CI_SERVER_NAME': 'str',
104
- 'CI_SERVER_PORT': 'str',
105
- 'CI_SERVER_PROTOCOL': 'str',
106
- 'CI_SERVER_REVISION': 'str',
107
- 'CI_SERVER_TLS_CA_FILE': 'str',
108
- 'CI_SERVER_URL': 'str',
109
- 'CI_SERVER_VERSION': 'str',
110
- 'CI_SERVER_VERSION_MAJOR': 'str',
111
- 'CI_SERVER_VERSION_MINOR': 'str',
112
- 'CI_SERVER_VERSION_PATCH': 'str',
113
- 'CI_TEMPLATE_REGISTRY_HOST': 'str',
114
- 'DEFAULT_STORE_ADDRESS': 'str',
115
- 'DEFAULT_STORE_ID': 'str',
116
- 'DEFAULT_STORE_LAT': 'str',
117
- 'DEFAULT_STORE_LON': 'str',
118
- 'DELAY_AFTER_PAY_IN_MS': 'str',
119
- 'DISABLED_INDEX': 'str',
120
- 'DOCKER_REGISTRY': 'str',
121
- 'DOCKER_REGISTRY_PASSWORD': 'str',
122
- 'DOCKER_REGISTRY_USER': 'str',
123
- 'ENV_FILE': 'str',
124
- 'ENV_NAME': 'str',
125
- 'FAQ_SERVER_URL': 'str',
126
- 'FF_CMD_DISABLE_DELAYED_ERROR_LEVEL_EXPANSION': 'str',
127
- 'FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR': 'str',
128
- 'FF_ENABLE_BASH_EXIT_CODE_CHECK': 'str',
129
- 'FF_ENABLE_JOB_CLEANUP': 'str',
130
- 'FF_KUBERNETES_HONOR_ENTRYPOINT': 'str',
131
- 'FF_NETWORK_PER_BUILD': 'str',
132
- 'FF_POSIXLY_CORRECT_ESCAPES': 'str',
133
- 'FF_SCRIPT_SECTIONS': 'str',
134
- 'FF_SKIP_NOOP_BUILD_STAGES': 'str',
135
- 'FF_USE_DIRECT_DOWNLOAD': 'str',
136
- 'FF_USE_DYNAMIC_TRACE_FORCE_SEND_INTERVAL': 'str',
137
- 'FF_USE_FASTZIP': 'str',
138
- 'FF_USE_IMPROVED_URL_MASKING': 'str',
139
- 'FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY': 'str',
140
- 'FF_USE_NEW_BASH_EVAL_STRATEGY': 'str',
141
- 'FF_USE_NEW_SHELL_ESCAPE': 'str',
142
- 'FF_USE_POWERSHELL_PATH_RESOLVER': 'str',
143
- 'FF_USE_WINDOWS_LEGACY_PROCESS_STRATEGY': 'str',
144
- 'FIVED_SERVER_URL': 'str',
145
- 'FOOTER_HOSTING_DOCS': 'str',
146
- 'FOOTER_LINK_FEEDBACK': 'str',
147
- 'GITLAB_CI': 'str',
148
- 'GITLAB_FEATURES': 'str',
149
- 'GITLAB_GITLAB_RUNNER_PORT': 'str',
150
- 'GITLAB_GITLAB_RUNNER_PORT_9252_TCP': 'str',
151
- 'GITLAB_GITLAB_RUNNER_PORT_9252_TCP_ADDR': 'str',
152
- 'GITLAB_GITLAB_RUNNER_PORT_9252_TCP_PORT': 'str',
153
- 'GITLAB_GITLAB_RUNNER_PORT_9252_TCP_PROTO': 'str',
154
- 'GITLAB_GITLAB_RUNNER_SERVICE_HOST': 'str',
155
- 'GITLAB_GITLAB_RUNNER_SERVICE_PORT': 'str',
156
- 'GITLAB_GITLAB_RUNNER_SERVICE_PORT_METRICS': 'str',
157
- 'GITLAB_RUNNER_REGISTRATION_TOKEN': 'str',
158
- 'GITLAB_TOKEN': 'str',
159
- 'GITLAB_USER_EMAIL': 'str',
160
- 'GITLAB_USER_ID': 'str',
161
- 'GITLAB_USER_LOGIN': 'str',
162
- 'GITLAB_USER_NAME': 'str',
163
- 'GIT_SUBMODULE_FORCE_HTTPS': 'str',
164
- 'HELM_REGISTRY': 'str',
165
- 'HELM_REGISTRY_TOKEN': 'str',
166
- 'HELM_REPO_PASSWORD': 'str',
167
- 'HELM_REPO_URL': 'str',
168
- 'HELM_REPO_USERNAME': 'str',
169
- 'HELPLINE_CONTACT_NUMBER': 'str',
170
- 'HOME': 'str',
171
- 'HOST': 'str',
172
- 'HOSTNAME': 'str',
173
- 'INIT_CWD': 'str',
174
- 'K8S_DEV_CONFIG': 'str',
175
- 'K8S_KUBECONFIG_DEV': 'str',
176
- 'K8S_KUBECONFIG_PROD': 'str',
177
- 'K8S_PROD02_CONFIG': 'str',
178
- 'K8S_PROD_CONFIG': 'str',
179
- 'K8S_PROD_SITE5KA_CONFIG': 'str',
180
- 'K8S_TEST02_CONFIG': 'str',
181
- 'K8S_TEST_CONFIG': 'str',
182
- 'K8S_X5M_COMMON_BACKEND_DEV_CONFIG': 'str',
183
- 'K8S_X5M_PHYGITAL_DEV_CONFIG': 'str',
184
- 'KE_INFO_SYS': 'str',
185
- 'KLAD_LINK': 'str',
186
- 'KUBERNETES_PORT': 'str',
187
- 'KUBERNETES_PORT_443_TCP': 'str',
188
- 'KUBERNETES_PORT_443_TCP_ADDR': 'str',
189
- 'KUBERNETES_PORT_443_TCP_PORT': 'str',
190
- 'KUBERNETES_PORT_443_TCP_PROTO': 'str',
191
- 'KUBERNETES_SERVICE_HOST': 'str',
192
- 'KUBERNETES_SERVICE_PORT': 'str',
193
- 'KUBERNETES_SERVICE_PORT_HTTPS': 'str',
194
- 'LOYALTY_CASH_TIMER': 'str',
195
- 'LOYALTY_LINK_ACTIVATE_CARD': 'str',
196
- 'LOYALTY_LINK_CREATE_CARD': 'str',
197
- 'LY_SERVER_URL': 'str',
198
- 'MILKA_LINK': 'str',
199
- 'MYSTERY_SHOPPER_LINK': 'str',
200
- 'Merchant': 'str',
201
- 'NEWS_SERVER_URL': 'str',
202
- 'NODE': 'str',
203
- 'NODE_VERSION': 'str',
204
- 'OFFERHUB_BASE_URL': 'str',
205
- 'OLDPWD': 'str',
206
- 'ORDER_CONTACT_NUMBER': 'str',
207
- 'ORDER_FEEDBACK_PHONE': 'str',
208
- 'ORDER_SERVER_URL': 'str',
209
- 'PACKAGE': 'str',
210
- 'PACKET_LINK': 'str',
211
- 'PAGE_NOT_FOUND_URL': 'str',
212
- 'PARTICIPANT_LINK': 'str',
213
- 'PARTICIPATE_LINK': 'str',
214
- 'PARTICIPATE_LINK_IMG_PRE': 'str',
215
- 'PATH': 'str',
216
- 'PRODUCT_SELECTION_CATEGORY_ID': 'str',
217
- 'PRODUCT_SELECTION_URL': 'str',
218
- 'PROMOCODE_RULES': 'str',
219
- 'PWD': 'str',
220
- 'PYPI_REPO_PASSWORD': 'str',
221
- 'PYPI_REPO_URL': 'str',
222
- 'PYPI_REPO_USERNAME': 'str',
223
- 'PayWithPoints': 'str',
224
- 'QUERY_LIMIT_DESKTOP': 'str',
225
- 'QUERY_LIMIT_PORTABLE': 'str',
226
- 'QUERY_MAX_LIMIT': 'str',
227
- 'REACT_APP_BANK_CARD': 'str',
228
- 'REACT_APP_DESKTOP_APP_APPLE': 'str',
229
- 'REACT_APP_DESKTOP_APP_GOOGLE': 'str',
230
- 'REACT_APP_DESKTOP_APP_HUAWEI': 'str',
231
- 'REACT_APP_KEYCLOAK_CLIENT_ID': 'str',
232
- 'REACT_APP_KEYCLOAK_REALM': 'str',
233
- 'REACT_APP_KEYCLOAK_URL': 'str',
234
- 'REACT_APP_MOBILE_APP': 'str',
235
- 'REACT_APP_PERSONAL_INFO': 'str',
236
- 'REFETCH_INTERVAL_ALL_ORDERS': 'str',
237
- 'REFETCH_INTERVAL_INCREMENT': 'str',
238
- 'REFETCH_INTERVAL_MAX': 'str',
239
- 'REFETCH_INTERVAL_MIN': 'str',
240
- 'REFETCH_INTERVAL_WAITING_FOR_PAY': 'str',
241
- 'REFETCH_LIMIT': 'str',
242
- 'RETRY_TIME': 'str',
243
- 'SBERPAYBACKDEEPLINK': 'str',
244
- 'SBPBACKDEEPLINK': 'str',
245
- 'SCM_X5M_ACCESS_TOKEN': 'str',
246
- 'SDK_URL': 'str',
247
- 'SDK_USER_ID_TYPE': 'str',
248
- 'SENTRY_DSN': 'str',
249
- 'SHLVL': 'str',
250
- 'SHOW_ADFOX_KING_BANNER': 'str',
251
- 'SHOW_PACKET_BANNER': 'str',
252
- 'SITE5KA_SENTRY_AUTH_TOKEN': 'str',
253
- 'SITE5KA_SENTRY_ORG': 'str',
254
- 'SITE5KA_SENTRY_PROJECT': 'str',
255
- 'SITEMAP_FILE': 'str',
256
- 'SONAR_HOST': 'str',
257
- 'SONAR_LOGIN': 'str',
258
- 'SONAR_PROTOCOL': 'str',
259
- 'SONAR_TAG': 'str',
260
- 'SUPPORT_UTL': 'str',
261
- 'TAG': 'str',
262
- 'TEMPORARY_BANNERS_URL': 'str',
263
- 'TIMEOUT': 'str',
264
- 'TIMEOUT_LY': 'str',
265
- 'TYPE': 'str',
266
- 'URL_TRAILING_SLASH': 'str',
267
- 'USE_OFFLINE': 'str',
268
- 'VAULT_ADDR': 'str',
269
- 'VAULT_AUTH_PATH': 'str',
270
- 'VAULT_AUTH_ROLE': 'str',
271
- 'VAULT_SERVER_URL': 'str',
272
- 'VERSION': 'str',
273
- 'X5_ACTION_EVENT_URL': 'str',
274
- 'X5_ACTION_SEND_EVENT_HEATLHCHECK_ENDPOINT_URL': 'str',
275
- 'X5_SENTRY_URL': 'str',
276
- 'YANDEX_MAP_API_KEY_GEOCODE': 'str',
277
- 'YANDEX_MAP_API_KEY_SUGGEST': 'str',
278
- 'YANDEX_MAP_API_QUERY_DEBOUNCE': 'str',
279
- 'YANDEX_METRIC_COUNTER_ID': 'str',
280
- 'YARN_VERSION': 'str',
281
- 'YARN_WRAP_OUTPUT': 'str',
282
- '_': 'str',
283
- 'a': [
284
- ],
285
- 'address': {
286
- },
287
- 'align': 'str',
288
- 'alignItems': 'str',
289
- 'alignSelf': 'str',
290
- 'appearance': 'str',
291
- 'background': 'str',
292
- 'backgroundColor': 'str',
293
- 'barcode': 'str',
294
- 'base': 'str',
295
- 'baseStyle': {
296
- },
297
- 'bg': 'str',
298
- 'border': 'str',
299
- 'borderBottomWidth': 'str',
300
- 'borderColor': 'str',
301
- 'borderLeftWidth': 'str',
302
- 'borderRadius': 'str',
303
- 'borderTopLeftRadius': 'str',
304
- 'borderTopRadius': 'str',
305
- 'boxShadow': 'str',
306
- 'c157f7': 'str',
307
- 'cardNo': 'str',
308
- 'children': [
309
- ],
310
- 'className': 'str',
311
- 'color': 'str',
312
- 'colorScheme': 'str',
313
- 'config': {
314
- },
315
- 'cx': 'str',
316
- 'cy': 'str',
317
- 'd': 'str',
318
- 'direction': 'str',
319
- 'display': 'str',
320
- 'e': [
321
- ],
322
- 'emptyColor': 'str',
323
- 'f2483c': 'str',
324
- 'f4efe4': 'str',
325
- 'ffa500': 'str',
326
- 'fill': 'str',
327
- 'flex': 'str',
328
- 'flexDirection': 'str',
329
- 'focusable': 'str',
330
- 'fontSize': 'str',
331
- 'fontWeight': 'str',
332
- 'gap': 'str',
333
- 'geocode': 'str',
334
- 'get': 'str',
335
- 'getBalance': 'str',
336
- 'getBanners': 'str',
337
- 'getBarcode': 'str',
338
- 'getCards': 'str',
339
- 'getCategoriesData': 'str',
340
- 'getNews': 'str',
341
- 'getOrders': 'str',
342
- 'getProduct': 'str',
343
- 'getProductSelection': 'str',
344
- 'getPromoOffers': 'str',
345
- 'getShops': 'str',
346
- 'getStoreByCoordinates': 'str',
347
- 'getStoreBySapCode': 'str',
348
- 'h': 'str',
349
- 'height': 'str',
350
- 'hookName': 'str',
351
- 'image': 'str',
352
- 'justifyContent': 'str',
353
- 'lg': 'str',
354
- 'lineHeight': 'str',
355
- 'main': 'str',
356
- 'margin': 'str',
357
- 'marginBottom': 'str',
358
- 'marginTop': 'str',
359
- 'maxHeight': 'str',
360
- 'maxWidth': 'str',
361
- 'md': 'str',
362
- 'minHeight': 'str',
363
- 'name': 'str',
364
- 'npm_config_bin_links': 'str',
365
- 'npm_config_ignore_optional': 'str',
366
- 'npm_config_ignore_scripts': 'str',
367
- 'npm_config_init_license': 'str',
368
- 'npm_config_init_version': 'str',
369
- 'npm_config_registry': 'str',
370
- 'npm_config_save_prefix': 'str',
371
- 'npm_config_strict_ssl': 'str',
372
- 'npm_config_user_agent': 'str',
373
- 'npm_config_version': 'str',
374
- 'npm_config_version_commit_hooks': 'str',
375
- 'npm_config_version_git_message': 'str',
376
- 'npm_config_version_git_sign': 'str',
377
- 'npm_config_version_git_tag': 'str',
378
- 'npm_config_version_tag_prefix': 'str',
379
- 'npm_execpath': 'str',
380
- 'npm_lifecycle_event': 'str',
381
- 'npm_lifecycle_script': 'str',
382
- 'npm_node_execpath': 'str',
383
- 'npm_package_dependencies__loadable_component': 'str',
384
- 'npm_package_dependencies__orama_orama': 'str',
385
- 'npm_package_dependencies__react_keycloak_web': 'str',
386
- 'npm_package_dependencies__sber_ecom_core_sberpay_widget': 'str',
387
- 'npm_package_dependencies__sentry_react': 'str',
388
- 'npm_package_dependencies__types_jwt_decode': 'str',
389
- 'npm_package_dependencies_axios': 'str',
390
- 'npm_package_dependencies_bwip_js': 'str',
391
- 'npm_package_dependencies_classnames': 'str',
392
- 'npm_package_dependencies_date_fns': 'str',
393
- 'npm_package_dependencies_dompurify': 'str',
394
- 'npm_package_dependencies_dotenv': 'str',
395
- 'npm_package_dependencies_keycloak_js': 'str',
396
- 'npm_package_dependencies_mobx': 'str',
397
- 'npm_package_dependencies_mobx_react_lite': 'str',
398
- 'npm_package_dependencies_qr_code_styling': 'str',
399
- 'npm_package_dependencies_react': 'str',
400
- 'npm_package_dependencies_react_dom': 'str',
401
- 'npm_package_dependencies_react_helmet_async': 'str',
402
- 'npm_package_dependencies_react_intersection_observer': 'str',
403
- 'npm_package_dependencies_react_query': 'str',
404
- 'npm_package_dependencies_react_router_dom': 'str',
405
- 'npm_package_dependencies_react_yandex_maps': 'str',
406
- 'npm_package_dependencies_react_yandex_metrika': 'str',
407
- 'npm_package_dependencies_swiper': 'str',
408
- 'npm_package_dependencies_uuid': 'str',
409
- 'npm_package_dependencies_virtua': 'str',
410
- 'npm_package_devDependencies__babel_core': 'str',
411
- 'npm_package_devDependencies__babel_plugin_transform_typescript': 'str',
412
- 'npm_package_devDependencies__babel_preset_env': 'str',
413
- 'npm_package_devDependencies__babel_preset_react': 'str',
414
- 'npm_package_devDependencies__babel_preset_typescript': 'str',
415
- 'npm_package_devDependencies__chakra_ui_react': 'str',
416
- 'npm_package_devDependencies__chromatic_com_storybook': 'str',
417
- 'npm_package_devDependencies__emotion_react': 'str',
418
- 'npm_package_devDependencies__emotion_styled': 'str',
419
- 'npm_package_devDependencies__eslint_js': 'str',
420
- 'npm_package_devDependencies__pmmmwh_react_refresh_webpack_plugin': 'str',
421
- 'npm_package_devDependencies__storybook_addon_essentials': 'str',
422
- 'npm_package_devDependencies__storybook_addon_interactions': 'str',
423
- 'npm_package_devDependencies__storybook_addon_links': 'str',
424
- 'npm_package_devDependencies__storybook_addon_onboarding': 'str',
425
- 'npm_package_devDependencies__storybook_addon_webpack5_compiler_babel': 'str',
426
- 'npm_package_devDependencies__storybook_addon_webpack5_compiler_swc': 'str',
427
- 'npm_package_devDependencies__storybook_react_webpack5': 'str',
428
- 'npm_package_devDependencies__svgr_webpack': 'str',
429
- 'npm_package_devDependencies__swc_cli': 'str',
430
- 'npm_package_devDependencies__swc_core': 'str',
431
- 'npm_package_devDependencies__types_babel__core': 'str',
432
- 'npm_package_devDependencies__types_babel__preset_env': 'str',
433
- 'npm_package_devDependencies__types_dompurify': 'str',
434
- 'npm_package_devDependencies__types_dotenv_webpack': 'str',
435
- 'npm_package_devDependencies__types_eslint': 'str',
436
- 'npm_package_devDependencies__types_html_webpack_plugin': 'str',
437
- 'npm_package_devDependencies__types_loadable__component': 'str',
438
- 'npm_package_devDependencies__types_node': 'str',
439
- 'npm_package_devDependencies__types_react': 'str',
440
- 'npm_package_devDependencies__types_react_dom': 'str',
441
- 'npm_package_devDependencies__types_webpack': 'str',
442
- 'npm_package_devDependencies__types_webpack_dev_server': 'str',
443
- 'npm_package_devDependencies__typescript_eslint_eslint_plugin': 'str',
444
- 'npm_package_devDependencies__typescript_eslint_parser': 'str',
445
- 'npm_package_devDependencies__webpack_cli_serve': 'str',
446
- 'npm_package_devDependencies_babel_loader': 'str',
447
- 'npm_package_devDependencies_babel_preset_airbnb': 'str',
448
- 'npm_package_devDependencies_clean_webpack_plugin': 'str',
449
- 'npm_package_devDependencies_copy_webpack_plugin': 'str',
450
- 'npm_package_devDependencies_css_loader': 'str',
451
- 'npm_package_devDependencies_css_minimizer_webpack_plugin': 'str',
452
- 'npm_package_devDependencies_eslint': 'str',
453
- 'npm_package_devDependencies_eslint_config_airbnb': 'str',
454
- 'npm_package_devDependencies_eslint_config_airbnb_base': 'str',
455
- 'npm_package_devDependencies_eslint_config_airbnb_typescript': 'str',
456
- 'npm_package_devDependencies_eslint_config_prettier': 'str',
457
- 'npm_package_devDependencies_eslint_config_standard_with_typescript': 'str',
458
- 'npm_package_devDependencies_eslint_config_xo': 'str',
459
- 'npm_package_devDependencies_eslint_config_xo_typescript': 'str',
460
- 'npm_package_devDependencies_eslint_import_resolver_typescript': 'str',
461
- 'npm_package_devDependencies_eslint_plugin_import': 'str',
462
- 'npm_package_devDependencies_eslint_plugin_n': 'str',
463
- 'npm_package_devDependencies_eslint_plugin_prettier': 'str',
464
- 'npm_package_devDependencies_eslint_plugin_promise': 'str',
465
- 'npm_package_devDependencies_eslint_plugin_react': 'str',
466
- 'npm_package_devDependencies_eslint_plugin_react_hooks': 'str',
467
- 'npm_package_devDependencies_eslint_plugin_react_refresh': 'str',
468
- 'npm_package_devDependencies_framer_motion': 'str',
469
- 'npm_package_devDependencies_globals': 'str',
470
- 'npm_package_devDependencies_html_webpack_plugin': 'str',
471
- 'npm_package_devDependencies_husky': 'str',
472
- 'npm_package_devDependencies_init': 'str',
473
- 'npm_package_devDependencies_lint_staged': 'str',
474
- 'npm_package_devDependencies_lodash_debounce': 'str',
475
- 'npm_package_devDependencies_mini_css_extract_plugin': 'str',
476
- 'npm_package_devDependencies_prettier': 'str',
477
- 'npm_package_devDependencies_react_refresh': 'str',
478
- 'npm_package_devDependencies_sass': 'str',
479
- 'npm_package_devDependencies_sass_loader': 'str',
480
- 'npm_package_devDependencies_sitemap_webpack_plugin': 'str',
481
- 'npm_package_devDependencies_storybook': 'str',
482
- 'npm_package_devDependencies_style_loader': 'str',
483
- 'npm_package_devDependencies_stylelint': 'str',
484
- 'npm_package_devDependencies_stylelint_config_standard_scss': 'str',
485
- 'npm_package_devDependencies_stylelint_scss': 'str',
486
- 'npm_package_devDependencies_swc_loader': 'str',
487
- 'npm_package_devDependencies_terser_webpack_plugin': 'str',
488
- 'npm_package_devDependencies_ts_loader': 'str',
489
- 'npm_package_devDependencies_ts_node': 'str',
490
- 'npm_package_devDependencies_tsconfig_paths_webpack_plugin': 'str',
491
- 'npm_package_devDependencies_typescript': 'str',
492
- 'npm_package_devDependencies_typescript_eslint': 'str',
493
- 'npm_package_devDependencies_webpack': 'str',
494
- 'npm_package_devDependencies_webpack_cli': 'str',
495
- 'npm_package_devDependencies_webpack_dev_server': 'str',
496
- 'npm_package_devDependencies_workbox_webpack_plugin': 'str',
497
- 'npm_package_lint_staged____ts_tsx__0': 'str',
498
- 'npm_package_lint_staged____ts_tsx__1': 'str',
499
- 'npm_package_lint_staged___scss_0': 'str',
500
- 'npm_package_lint_staged___scss_1': 'str',
501
- 'npm_package_name': 'str',
502
- 'npm_package_packageManager': 'str',
503
- 'npm_package_private': 'str',
504
- 'npm_package_scripts_build': 'str',
505
- 'npm_package_scripts_build_dev': 'str',
506
- 'npm_package_scripts_build_prod': 'str',
507
- 'npm_package_scripts_lint': 'str',
508
- 'npm_package_scripts_postinstall': 'str',
509
- 'npm_package_scripts_start': 'str',
510
- 'npm_package_scripts_storybook': 'str',
511
- 'npm_package_version': 'str',
512
- 'offerhubBaseUrl': 'str',
513
- 'opacity': 'str',
514
- 'orderPlacementAttempts': 'str',
515
- 'orderV1': 'str',
516
- 'orderV2': 'str',
517
- 'orderV3': 'str',
518
- 'orderV4': 'str',
519
- 'orderV5': 'str',
520
- 'orderV6': 'str',
521
- 'orderV7': 'str',
522
- 'outline': 'str',
523
- 'overflow': 'str',
524
- 'overflowY': 'str',
525
- 'padding': 'str',
526
- 'paddingBottom': 'str',
527
- 'paddingInline': 'str',
528
- 'paymentMethods': 'str',
529
- 'payment_active': {
530
- },
531
- 'placement': 'str',
532
- 'position': 'str',
533
- 'providerName': 'str',
534
- 'questions': 'str',
535
- 'r': 'str',
536
- 'recommendations': 'str',
537
- 'response': {
538
- },
539
- 'right': 'str',
540
- 'size': 'str',
541
- 'sm': 'str',
542
- 'speed': 'str',
543
- 'stroke': 'str',
544
- 'strokeLinecap': 'str',
545
- 'strokeMiterlimit': 'str',
546
- 'strokeWidth': 'str',
547
- 'suggest': 'str',
548
- 'textDecoration': 'str',
549
- 'thickness': 'str',
550
- 'top': 'str',
551
- 'transition': 'str',
552
- 'type': 'str',
553
- 'uploadImage': 'str',
554
- 'user': {
555
- },
556
- 'userSelect': 'str',
557
- 'value': {
558
- },
559
- 'variant': 'str',
560
- 'verticalAlign': 'str',
561
- 'viewBox': 'str',
562
- 'w': 'str',
563
- 'websocket': 'str',
564
- 'whiteSpace': 'str',
565
- 'width': 'str',
566
- 'window': {
567
- },
568
- 'xl': 'str',
569
- 'xs': 'str',
570
- 'а': 'str',
571
- 'б': 'str',
572
- 'в': 'str',
573
- 'г': 'str',
574
- 'д': 'str',
575
- 'е': 'str',
576
- 'ж': 'str',
577
- 'з': 'str',
578
- 'и': 'str',
579
- 'й': 'str',
580
- 'к': 'str',
581
- 'л': 'str',
582
- 'м': 'str',
583
- 'н': 'str',
584
- 'о': 'str',
585
- 'п': 'str',
586
- 'р': 'str',
587
- 'с': 'str',
588
- 'т': 'str',
589
- 'у': 'str',
590
- 'ф': 'str',
591
- 'х': 'str',
592
- 'ц': 'str',
593
- 'ч': 'str',
594
- 'ш': 'str',
595
- 'щ': 'str',
596
- 'ъ': 'str',
597
- 'ы': 'str',
598
- 'ь': 'str',
599
- 'э': 'str',
600
- 'ю': 'str',
601
- 'я': 'str',
602
- 'ё': 'str'
603
- }
604
-
605
- snapshots['test_get_news get_news'] = {
606
- 'news': [
607
- {
608
- 'annotation': 'str',
609
- 'id': 'int',
610
- 'preview_pic': 'NoneType',
611
- 'preview_text': 'NoneType',
612
- 'published_at': 'str',
613
- 'title': 'str'
614
- }
615
- ]
616
- }
617
-
618
- snapshots['test_list categories_list'] = [
619
- {
620
- 'additional_icons': [
621
- ],
622
- 'categories': [
623
- {
624
- 'additional_icons': [
625
- {
626
- 'type': 'str',
627
- 'url': 'str'
628
- }
629
- ],
630
- 'advert': 'NoneType',
631
- 'gradient_end': 'str',
632
- 'gradient_start': 'str',
633
- 'id': 'str',
634
- 'image_link': 'str',
635
- 'name': 'str',
636
- 'title_color': 'str'
637
- }
638
- ],
639
- 'id': 'str',
640
- 'name': 'str'
641
- }
642
- ]
643
-
644
- snapshots['test_list products_list'] = {
645
- 'filters': [
646
- {
647
- 'field_name': 'str',
648
- 'filter_type': 'str',
649
- 'list_values': 'NoneType',
650
- 'name': 'str',
651
- 'range_max_val': 'str',
652
- 'range_min_val': 'str'
653
- }
654
- ],
655
- 'name': 'str',
656
- 'parent_id': 'str',
657
- 'products': [
658
- {
659
- 'badges': [
660
- ],
661
- 'has_age_restriction': 'bool',
662
- 'image_links': {
663
- 'normal': [
664
- 'str'
665
- ],
666
- 'small': [
667
- 'str'
668
- ]
669
- },
670
- 'initial_weight_step': 'str',
671
- 'labels': [
672
- {
673
- 'bg_color': 'str',
674
- 'label': 'str',
675
- 'text_color': 'str'
676
- }
677
- ],
678
- 'min_weight': 'str',
679
- 'name': 'str',
680
- 'plu': 'int',
681
- 'prices': {
682
- 'cpd_promo_price': 'NoneType',
683
- 'discount': 'str',
684
- 'regular': 'str'
685
- },
686
- 'promo': 'NoneType',
687
- 'property_clarification': 'str',
688
- 'rating': {
689
- 'rates_count': 'int',
690
- 'rating_average': 'float'
691
- },
692
- 'step': 'str',
693
- 'stock_limit': 'str',
694
- 'uom': 'str'
695
- }
696
- ]
697
- }
698
-
699
- snapshots['test_product_info product_info'] = {
700
- 'assetPrefix': 'str',
701
- 'buildId': 'str',
702
- 'gip': 'bool',
703
- 'isExperimentalCompile': 'bool',
704
- 'isFallback': 'bool',
705
- 'page': 'str',
706
- 'props': {
707
- 'pageProps': {
708
- '_sentryBaggage': 'str',
709
- '_sentryTraceData': 'str',
710
- 'props': {
711
- 'catalogStore': {
712
- '_sections': [
713
- ],
714
- 'banners': [
715
- ],
716
- 'bannersFetchState': 'int',
717
- 'brands': [
718
- ],
719
- 'inputs': {
720
- 'max': 'int',
721
- 'min': 'int'
722
- },
723
- 'products': [
724
- ],
725
- 'productsFetchState': 'int',
726
- 'productsList': [
727
- ],
728
- 'productsListFetchState': 'int',
729
- 'productsPaginationFetchState': 'int',
730
- 'promotions': [
731
- ],
732
- 'promotionsFetchState': 'int',
733
- 'recommendationFetch': 'int',
734
- 'sectionsFetchState': 'int',
735
- 'specificCategory': 'NoneType',
736
- 'specificCategoryFetchState': 'int',
737
- 'storeId': 'str'
738
- },
739
- 'filtersPageStore': {
740
- 'page': 'int'
741
- },
742
- 'isServerRendered': 'bool',
743
- 'productStore': {
744
- 'product': {
745
- 'attributes': [
746
- {
747
- 'name': 'str',
748
- 'uom': 'str',
749
- 'value': 'str'
750
- }
751
- ],
752
- 'badges': [
753
- ],
754
- 'description': 'str',
755
- 'description_html': 'NoneType',
756
- 'description_md': 'str',
757
- 'has_age_restriction': 'bool',
758
- 'image_links': {
759
- 'normal': [
760
- 'str'
761
- ],
762
- 'small': [
763
- 'str'
764
- ]
765
- },
766
- 'ingredients': 'str',
767
- 'ingredients_html': 'NoneType',
768
- 'initial_weight_step': 'str',
769
- 'is_available': 'bool',
770
- 'is_various_manufacturers': 'bool',
771
- 'labels': [
772
- {
773
- 'bg_color': 'str',
774
- 'label': 'str',
775
- 'text_color': 'str'
776
- }
777
- ],
778
- 'min_weight': 'str',
779
- 'name': 'str',
780
- 'nutrients': [
781
- {
782
- 'text': 'str',
783
- 'value': 'str'
784
- }
785
- ],
786
- 'plu': 'int',
787
- 'prices': [
788
- {
789
- 'placement_type': 'str',
790
- 'value': 'str'
791
- }
792
- ],
793
- 'promo': 'NoneType',
794
- 'property_clarification': 'str',
795
- 'rating': {
796
- 'rates_count': 'int',
797
- 'rating_average': 'float'
798
- },
799
- 'step': 'str',
800
- 'stock_limit': 'str',
801
- 'uom': 'str'
802
- },
803
- 'productFetchState': 'int'
804
- }
805
- }
806
- }
807
- },
808
- 'query': {
809
- 'pluWithSlug': 'str'
810
- },
811
- 'scriptLoader': [
812
- ]
813
- }
814
-
815
- snapshots['test_rebuild_connection rebuild_connection'] = 'connection has been rebuilt'
816
-
817
- snapshots['test_set_debug set_debug'] = False
tests/tools_tests.py DELETED
@@ -1,30 +0,0 @@
1
- import pytest
2
- from pyaterochka_api.tools import parse_proxy
3
- import itertools
4
- import logging
5
-
6
- @pytest.mark.asyncio
7
- async def test_parse_proxy():
8
- # Варианты параметров
9
- schemes = ['http://', 'https://', '']
10
- auths = [('', ''), ('user', 'pass')]
11
- hosts = ['127.0.0.1', 'example.com']
12
- ports = ['', '8080']
13
-
14
- logger = logging.getLogger("test_parse_proxy")
15
-
16
- for scheme, (username, password), host, port in itertools.product(schemes, auths, hosts, ports):
17
- # Формируем строку прокси
18
- auth_part = f"{username}:{password}@" if username else ""
19
- port_part = f":{port}" if port else ""
20
- proxy_str = f"{scheme}{auth_part}{host}{port_part}"
21
-
22
- expected = {'server': f"{scheme}{host}{port_part}"}
23
- if not scheme:
24
- expected['server'] = "http://"+expected['server']
25
- if username:
26
- expected['username'] = username
27
- expected['password'] = password
28
-
29
- assert parse_proxy(proxy_str, True, logger) == expected
30
-