Запуск API-тестов на стенде
Живые API-тесты могут менять общий стенд. Не запускайте их параллельно с другим разработчиком или CI job против того же стенда. GitLab resource_group сериализует только jobs внутри этого проекта; локальные pytest-запуски он не блокирует. Certificate selection сбрасывает certificate-related состояние стенда один раз за pytest session. Chaincode API selection может подготовить MCC/IITACA registry records перед тестами.
Smoke:
.venv/bin/python -m pytest tests/api -m smoke --timeout 2400 -q
Все API tests:
.venv/bin/python -m pytest tests/api --timeout 600 -q
Один файл:
.venv/bin/python -m pytest tests/api/ca/test_create_ca.py --timeout 600 -q
Один класс:
.venv/bin/python -m pytest tests/api/ca/test_create_ca.py::TestCreateCA --timeout 600 -q
Один тест:
.venv/bin/python -m pytest tests/api/ca/test_create_ca.py::TestCreateCA::test_create_ca_contract --timeout 600 -q
Один parametrized case:
.venv/bin/python -m pytest "tests/api/certificate/test_create_certificate.py::TestCreateCertificate::test_create_certificate_transport_contract[pem_transport]" --timeout 600 -q
Полезные переменные выбора:
.venv/bin/python -m pytest tests/api -m regression --timeout 600 -q .venv/bin/python -m pytest tests/api -k test_create_certificate_contract --timeout 600 -q .venv/bin/python -m pytest tests/api/certificate --timeout 600 -q
В pytest.ini задано timeout_func_only = true, поэтому --timeout 600 — это 10 минут на тело одного test function, а не на весь job. В CI сейчас run_smoke использует --timeout 2400, остальные API jobs используют --timeout 600.