/
Soldier327
/
Tests
Обзор
Документация
Войти
/
Soldier327
/
Tests
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Test_YANDEX_API.py
109 строк
4 KB
Soldier327
create: Test_age_verification.py, Test_palindrome.py, Test_type_of_triangle.py, Test_YANDEX_API.py, age_verification.py, palindrome.py, Type_of_triangle.py
26 апр 2026, 18:05
Верифицирован
26 апр 2026, 18:05
feb24a8
Код
Авторство
О чём код?
import unittest import requests import os class TestYandexDiskAPI(unittest.TestCase): @classmethod def setUpClass(cls): cls.token = os.getenv('YANDEX_TOKEN') if not cls.token: cls.token = 'ваш_токен_здесь' cls.base_url = 'https://cloud-api.yandex.net/v1/disk/resources' cls.headers = {'Authorization': f'OAuth {cls.token}'} cls.folder_name = 'test_folder' def create_folder(self, folder_path): response = requests.put( self.base_url, headers=self.headers, params={'path': folder_path} ) return response def delete_folder(self, folder_path): requests.delete( self.base_url, headers=self.headers, params={'path': folder_path, 'permanently': True} ) def folder_exists(self, folder_path): response = requests.get( self.base_url, headers=self.headers, params={'path': folder_path} ) return response.status_code == 200 def setUp(self): self.folder_path = f'/{self.folder_name}' # Удаляем папку, если она существует self.delete_folder(self.folder_path) def tearDown(self): self.delete_folder(self.folder_path) # Положительные тесты def test_positive_create_folder_success(self): response = self.create_folder(self.folder_path) self.assertIn(response.status_code, [200, 201]) def test_positive_folder_in_list(self): self.create_folder(self.folder_path) list_url = 'https://cloud-api.yandex.net/v1/disk/resources/files' response = requests.get(list_url, headers=self.headers, params={'limit': 100}) items = response.json().get('items', []) folder_names = [item['name'] for item in items if item['type'] == 'dir'] self.assertIn(self.folder_name, folder_names) def test_positive_create_nested_folder(self): nested_path = f"{self.folder_path}/nested" response = self.create_folder(nested_path) self.assertIn(response.status_code, [200, 201]) self.assertTrue(self.folder_exists(nested_path)) # Негативные тесты def test_negative_no_token(self): response = requests.put( self.base_url, params={'path': self.folder_path} ) self.assertEqual(response.status_code, 401) def test_negative_invalid_token(self): invalid_headers = {'Authorization': 'OAuth invalid_token'} response = requests.put( self.base_url, headers=invalid_headers, params={'path': self.folder_path} ) self.assertEqual(response.status_code, 401) def test_negative_no_path(self): response = requests.put(self.base_url, headers=self.headers) self.assertEqual(response.status_code, 400) self.assertIn('path not specified', response.text.lower()) def test_negative_folder_already_exists(self): self.create_folder(self.folder_path) response = self.create_folder(self.folder_path) self.assertEqual(response.status_code, 409) self.assertIn('already exists', response.text.lower() or 'exists') def test_negative_invalid_folder_name(self): invalid_name = "folder/with/slash" response = self.create_folder(f'/{invalid_name}') self.assertEqual(response.status_code, 400) def test_negative_wrong_method(self): response = requests.post( self.base_url, headers=self.headers, params={'path': self.folder_path} ) self.assertEqual(response.status_code, 405)