docker-mailman icon indicating copy to clipboard operation
docker-mailman copied to clipboard

Add tests for SQLite

Open maxking opened this issue 8 years ago • 5 comments

It seems the provided configuration doesn't work for SQLite

OperationalError: no such table: hyperkitty_email
ERROR 2017-11-10 01:41:11,882 24 django.request Internal Server Error: /
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 39, in inner
    response = get_response(request)
  File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 244, in _legacy_get_response
    response = middleware_method(request)
  File "/usr/local/lib/python2.7/site-packages/django/middleware/locale.py", line 25, in process_request
    language = translation.get_language_from_request(request, check_path=i18n_patterns_used)
  File "/usr/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 206, in get_language_from_request
    return _trans.get_language_from_request(request, check_path)
  File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 516, in get_language_from_request
    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py", line 68, in get
    return self._session.get(key, default)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py", line 207, in _get_session
    self._session_cache = self.load()
  File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py", line 35, in load
    expire_date__gt=timezone.now()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 379, in get
    num = len(clone)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 238, in __len__
    self._fetch_all()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1085, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 54, in __iter__
    results = compiler.execute_sql()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 835, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 337, in execute
    return Database.Cursor.execute(self, query, params)
OperationalError: no such table: django_session
ERROR 2017-11-10 01:41:11,882 24 django.request Internal Server Error: /
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 39, in inner
    response = get_response(request)
  File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 244, in _legacy_get_response
    response = middleware_method(request)
  File "/usr/local/lib/python2.7/site-packages/django/middleware/locale.py", line 25, in process_request
    language = translation.get_language_from_request(request, check_path=i18n_patterns_used)
  File "/usr/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 206, in get_language_from_request
    return _trans.get_language_from_request(request, check_path)
  File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 516, in get_language_from_request
    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py", line 68, in get
    return self._session.get(key, default)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py", line 207, in _get_session
    self._session_cache = self.load()
  File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py", line 35, in load
    expire_date__gt=timezone.now()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 379, in get
    num = len(clone)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 238, in __len__
    self._fetch_all()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1085, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 54, in __iter__
    results = compiler.execute_sql()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 835, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 337, in execute
    return Database.Cursor.execute(self, query, params)
OperationalError: no such table: django_session
ERROR 2017-11-10 01:42:02,009 54 hyperkitty.lib.utils Failed to update the fulltext index: no such table: hyperkitty_email
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/hyperkitty/lib/utils.py", line 186, in run_with_lock
    fn(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hyperkitty/search_indexes.py", line 87, in update_index
    update_cmd.update_backend("hyperkitty", "default")
  File "/usr/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 240, in update_backend
    total = qs.count()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 369, in count
    return self.query.get_count(using=self.db)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 476, in get_count
    number = obj.get_aggregation(using, ['__count'])['__count']
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 457, in get_aggregation
    result = compiler.execute_sql(SINGLE)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 835, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 337, in execute
    return Database.Cursor.execute(self, query, params)
OperationalError: no such table: hyperkitty_email

maxking avatar Nov 10 '17 01:11 maxking

Core seems to work well with SQLite.

Django needs to be tested to work well with SQLite.

maxking avatar Nov 10 '17 21:11 maxking

What about a MySQL test? Given I recently found out MySQL doesn't seem to work either

ghost avatar Nov 11 '17 05:11 ghost

Yeah, that is something very weird. I am not sure if that is a problem in Core or a problem in container images.

It is possible that the test suite in Core doesn't cover that problem and hence the problem. Once we know, we can address the problem in the relevant place.

All unittests in Core seems to pass for MySQL.

maxking avatar Nov 11 '17 06:11 maxking

in #539 I pushed a fix, that at least solves the cause of the issue see. It indeed is not a test, as discussed here.

Regarding test: Do you insist on CircleCI? Or is GithubActions also acceptable?

SvenRoederer avatar Mar 31 '22 22:03 SvenRoederer

We don’t have a GHA setup, so the only tests working right now is CircleCI and I don’t want to split them.

Are you not able to see the circle-ci failures? I thought they are public.

Looking at the failures, it seems like not related to your issues and might require some version bumps or upgrades. I’ll have to check on that later.

maxking avatar Mar 31 '22 23:03 maxking

This issue has not been updated for more than 1year

github-actions[bot] avatar Apr 01 '23 22:04 github-actions[bot]