Тест скрыт постоянным skip и недостаточно надёжен: нужны timeout, проверка GET-статуса, согласованная авторизация, уникальные данные, очистка и ясный контракт идентификатора.
@pytest.mark.skip("flaky")
Тест скрыт постоянным 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; в отчёт не прикладывайте секреты и персональные данные.