Как мне заставить Django StaticLiveServerTestCase использовать существующую базу данных - PullRequest
0 голосов
/ 20 января 2019

У меня есть сервер 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',
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...