@pytest.mark.skip("flaky")

Тест скрыт постоянным skip и недостаточно надёжен: нужны timeout, проверка GET-статуса, согласованная авторизация, уникальные данные, очистка и ясный контракт идентификатора.

Короткий ответ

Что ответить на собеседовании

Тест скрыт постоянным skip и недостаточно надёжен: нужны timeout, проверка GET-статуса, согласованная авторизация, уникальные данные, очистка и ясный контракт идентификатора.

Подробный разбор

Ответ с пояснениями

Условие

@pytest.mark.skip("flaky") def test_create_user(self, base_url, generate_faker_data): headers = {"api-key": "special-key"} data = { **generate_faker_data }

response = requests.post(f'{base_url}/user', json=data, headers=headers)
assert response.status_code == 200, "Ошибка, регистрация не пройдена"
assert "code" in response.json(), "Ошибка, сущность не создана"

response_username = requests.get(f'{base_url}/user/{data["username"]}')
assert response_username.json()['username'] == data['username']
assert response_username.json()['id'] == data['id'], "ID не совпадают"
self.attach_response(response.json())

Ответ

Тест скрыт постоянным skip и недостаточно надёжен: нужны timeout, проверка GET-статуса, согласованная авторизация, уникальные данные, очистка и ясный контракт идентификатора.

Начните с причины flaky и заведённой задачи на исправление: постоянный skip исключает проверку из защиты релиза. Не храните рабочий API-ключ в коде. После POST проверяйте ожидаемый контракт, а затем используйте возвращённый сервером идентификатор, если именно сервер его назначает. Для GET нужны timeout и проверка статуса до чтения полей. Учитывайте eventual consistency через ограниченное ожидание, а не случайный sleep. Пользователя удаляйте в teardown; в отчёт не прикладывайте секреты и персональные данные.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее