Ответ
Уровень: Upper-Intermediate (B2). Активно использую Python для автоматизации тестирования и решения инженерных задач.
Применяемые знания на практике:
- Фреймворки для тестирования: Pytest (фикстуры, параметризация, плагины), Unittest.
- Работа с данными и API: Библиотеки
requests,aiohttp(асинхронные запросы),BeautifulSoup/parselдля парсинга. - Основы языка: Понимание и применение ООП, декораторов, генераторов, менеджеров контекста, работа с исключениями.
- Инструменты: Виртуальные окружения (
venv), менеджеры пакетов (pip,poetry), линтеры (flake8).
Пример кода, демонстрирующий уровень:
import pytest
from typing import List, Dict
# Параметризованный тест с фикстурой
@pytest.fixture
def sample_data() -> List[Dict]:
return [{"id": 1, "value": "test"}, {"id": 2, "value": "demo"}]
@pytest.mark.parametrize("item_id, expected_value", [(1, "test"), (2, "demo")])
def test_data_structure(sample_data, item_id, expected_value):
"""Тест проверяет корректность данных в списке словарей."""
# Использование генератора для поиска
found_item = next((item for item in sample_data if item["id"] == item_id), None)
assert found_item is not None, f"Item with id {item_id} not found"
assert found_item["value"] == expected_value
# Пример использования декоратора для логирования
import functools
import time
def log_execution_time(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
start_time = time.perf_counter()
result = func(*args, **kwargs)
end_time = time.perf_counter()
print(f"{func.__name__} выполнена за {end_time - start_time:.4f} сек")
return result
return wrapper
@log_execution_time
def process_large_dataset(data):
# Имитация долгой обработки
time.sleep(0.1)
return len(data)