У меня есть две базы данных: одна master
и для тестирования у меня есть другая база данных master_test
Чтобы получить общую цену из таблицы, которую я создал @classmethod
в модели. Этот метод помогает мне получить сумму фильтрации цен по месяцам и годам. Вот метод класса:
@classmethod
def get_total_book_price(cls, id):
query = Book.query.with_entities(
func.sum(Book.price).label("price")
).filter(
extract('year', Book.created_at) >= datetime.date.today().year,
extract('month', Book.created_at) >= datetime.date.today().month
).filter(
Book.id == id
).all()
return query[0].price
Этот запрос работает хорошо. Но когда я запускаю это для теста, его база данных master
не существует. Он должен найти базу данных master_test
вместо базы данных master
. Вот код теста:
def test_get_total_book_price(self):
id = 1
response = Book.get_total_book_price(id)
if not response:
self.assertEqual(response, False)
self.assertEqual(response, True)
Он показывает ОШИБКУ:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: database "master"
does not exist
(Background on this error at: http://sqlalche.me/e/e3q8)
----------------------------------------------------------------------
Ran 34 tests in 2.011s
FAILED (errors=1)
ERROR: Job failed: exit code 1
Некоторые другие тестовые примеры прекрасно работают с master_test
. Но для этого теста, почему он ищет master
базу данных?