Вступить в клуб →
сложнаявопросSQL и проверка данных

Фикстура вставила заказ в базу, а API отвечает 404: где искать причину

Фикстура готовит данные напрямую в базе:

conn = psycopg2.connect(DSN)
cur = conn.cursor()
cur.execute("INSERT INTO orders (id, user_id, total) VALUES (9001, 42, 1500)")
# commit не вызывается

В этом же соединении SELECT показывает строку. Но тест падает: GET /api/v1/orders/9001 возвращает 404.

Что происходит?

  • Сервис читает данные с реплики, и нужно подождать, пока строка доедет туда репликацией
  • Вставка не зафиксирована: сервис работает через другое соединение и незавершённую транзакцию не видит
  • Сервис закэшировал список заказов пользователя, и требуется сброс кэша перед запросом
  • Счётчик идентификаторов разошёлся с явным id, поэтому заказ сохранился под другим номером

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела