У меня есть сервер Django, работающий на экземпляре AWS EC2 в 0.0.0.0:8000.В этом экземпляре размещается мой сайт разработки (промежуточный сайт), и я хочу запустить тесты с фактической базой данных Postgres, связанной с этим экземпляром (в RDS), с использованием селена.Я пытаюсь запустить некоторые функциональные тесты (наследовать от StaticLiveServerTestCase
) на этом сервере с моей локальной машины.Когда я запускаю свои FT на сервере, работающем на моем экземпляре EC2, я использую
STAGING_SERVER=instanceID.us-east-2.compute.amazonaws.com:8000 python manage.py test functional_tests
В своих функциональных тестах я устанавливаю атрибут live_server_url равным переменной среды STAGING_SERVER, объявленной в команде консоли.
staging_server = os.environ.get('STAGING_SERVER')
if staging_server:
self.live_server_url = 'http://' + staging_server
Проблема, с которой я столкнулся, заключается в том, что внутри моих тестовых классов я создаю объекты с помощью методов модели, потому что мне нужно заполнить БД для некоторых моих тестов.Например, мне нужно создать пользователей, чтобы я мог войти на сайт.У меня проблема в том, что браузер через selenium
взаимодействует с моим промежуточным сервером на 0.0.0.0:8000, который также взаимодействует с моей реальной базой данных, но объекты, созданные внутри моих тестовых классов, вставляются в базу данных test_database, созданнуюКласс TestCase, то есть у меня две базы данных.Я хочу, чтобы мои FT могли использовать реальную базу данных, а не базу данных test_database.Я попытался взломать его, установив
settings.DATABASES['default']['NAME']
из 'test_db' в 'db' внутри функции setUp, но затем я просто получаю OperationalError.
ДЕТАЛИ: Есть 1другой сеанс с использованием базы данных
Буду очень признателен за любые рекомендации относительно запуска тестов на удаленном сервере разработки или просто как заставить StaticLiverServerTestCase использовать мою базу данных actaul.
Вспомогательная информация:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'db',
'USER': 'root_user',
'PASSWORD': 'root_password',
'HOST': 'instancdID.us-east-2.rds.amazonaws.com',
'PORT': '5432',
}
}