Selenium django error during migration

152 Views Asked by At

I am trying to use selenium for testing of my django application

After running the following command:

python3 manage.py test function_test(folder)

The following error came up:

*Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/base.py", line 130, in ensure_connection
    self.connect()
  File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/base.py", line 122, in connect
    connection_created.send(sender=self.__class__, connection=self)
  File "/usr/local/lib/python3.4/dist-packages/django/dispatch/dispatcher.py", line 189, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/usr/local/lib/python3.4/dist-packages/django_hstore/apps.py", line 48, in __call__
    return [x(connection) for x in handlers]
  File "/usr/local/lib/python3.4/dist-packages/django_hstore/apps.py", line 48, in <listcomp>
    return [x(connection) for x in handlers]
  File "/usr/local/lib/python3.4/dist-packages/django_hstore/apps.py", line 76, in register_hstore_handler
    register_hstore(connection.connection, globally=HSTORE_REGISTER_GLOBALLY)
  File "/usr/local/lib/python3.4/dist-packages/psycopg2/extras.py", line 775, in register_hstore
    "hstore type not found in the database. "
psycopg2.ProgrammingError: hstore type not found in the database. please install it from your 'contrib/hstore.sql' fil*e

I have already installed hstore in my main project and i m running the tests on a live_server_test_case , so it should not be creating a problem.

Is there a way i can skip migrations before running the selenium code as i have mentioned the creation of hstore type in the setup() function , but i am not able to reach the code.

1

There are 1 best solutions below

5
On

When you run the tests, Django creates a test database. Using LiveServerTestCase means that there is a Django server that can be used by the tests (e.g. by Selenium), it doesn't mean that it uses the live database.

It sounds like you need to create a migration to install the HStoreExtension. The Django test runner will run the migration, preventing the error. See the docs or this question for more info.