/
Zero1l
/
21
Обзор
Документация
Войти
/
Zero1l
/
21
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
README.py
129 строк
3 KB
Zero1l
update README.py
19 авг 2025, 14:36
19 авг 2025, 14:36
2c25d44
Код
Авторство
О чём код?
# 21 # functions.py def add(a, b): return a + b def is_even(n): return n % 2 == 0 def factorial(n): if n == 0: return 1 result = 1 for i in range(1, n + 1): result *= i return result Тесты с параметризацией: python # test_functions.py import pytest from functions import add, is_even, factorial @pytest.mark.parametrize("a, b, expected", [ (1, 2, 3), (-1, 1, 0), (0, 0, 0), ]) def test_add(a, b, expected): assert add(a, b) == expected @pytest.mark.parametrize("n, expected", [ (2, True), (3, False), (0, True), ]) def test_is_even(n, expected): assert is_even(n) == expected @pytest.mark.parametrize("n, expected", [ (0, 1), (5, 120), (3, 6), ]) def test_factorial(n, expected): assert factorial(n) == expected Задача №2: Автотест API Яндекса — создание папки на Диске Для этого используем библиотеку requests. Предположим у вас есть токен авторизации. Общий пример: python import requests # Ваш OAuth-токен Яндекс.Диска TOKEN = 'YOUR_YANDEX_DISK_OAUTH_TOKEN' headers = { 'Authorization': f'OAuth {TOKEN}' } def create_folder(folder_path): url = 'https://cloud-api.yandex.net/v1/disk/resources' params = { 'path': folder_path, 'overwrite': True } response = requests.put(url, headers=headers, params=params) return response def list_files(): url = 'https://cloud-api.yandex.net/v1/disk/resources' response = requests.get(url, headers=headers) if response.status_code == 200: return response.json() else: return None Тесты с использованием pytest и requests-mock: Чтобы писать тесты без реального доступа к API (что рекомендуется), используем библиотеку requests-mock. python import pytest import requests from your_module import create_folder, list_files @pytest.fixture def mock_requests(requests_mock): # Мокаем ответ на создание папки - успешный ответ requests_mock.put( 'https://cloud-api.yandex.net/v1/disk/resources', status_code=201, json={"href": "https://some-url"} ) # Мокаем ответ на получение списка файлов - папка есть в списке requests_mock.get( 'https://cloud-api.yandex.net/v1/disk/resources', status_code=200, json={ "items": [ {"name": "test_folder", "type": "dir"}, {"name": "file.txt", "type": "file"} ] } ) def test_create_folder_success(mock_requests): response = create_folder('test_folder') assert response.status_code in [200, 201] def test_folder_exists_in_list(mock_requests): files_info = list_files() folder_names = [item['name'] for item in files_info['items']] assert 'test_folder' in folder_names def test_create_folder_error(): m.put( 'https://cloud-api.yandex.net/v1/disk/resources', status_code=403, json={"error": "Forbidden"} ) response = create_folder('test_folder') assert response.status_code == 403