Skip to content

Commit

Permalink
テスト実行をpytestに移行
Browse files Browse the repository at this point in the history
  • Loading branch information
kashewnuts committed Aug 5, 2024
1 parent 7a455df commit ada523c
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 79 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']
django-version: ['3.2', '4.2']
django-version: ['4.2']

steps:
# ソースコードをチェックアウト
Expand Down
7 changes: 0 additions & 7 deletions beproud/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +0,0 @@
# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
from pkgutil import extend_path
__path__ = locals()['__path__'] # make PyFlakes happy
__path__ = extend_path(__path__, __name__)
7 changes: 0 additions & 7 deletions beproud/django/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +0,0 @@
# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
from pkgutil import extend_path
__path__ = locals()['__path__'] # make PyFlakes happy
__path__ = extend_path(__path__, __name__)
3 changes: 0 additions & 3 deletions setup.py

This file was deleted.

27 changes: 16 additions & 11 deletions test_settings.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import os
import celery

# Django3では、標準のdjango.conf.global_settingsの定数をオーバーライドすると例外が発生する場合がある。
# https://github.com/django/django/blob/70035fb0444ae7c01613374212ca5e3c27c9782c/django/conf/__init__.py#L188
# そのため、testではdjango.conf.global_settingsを直接利用せず、このtest用settings定数を使用する。
Expand All @@ -9,20 +12,13 @@
'beproud.django.notify',
)

# kombu.exceptions.EncodeError: Object of type User is not JSON serializable エラーを抑止する
# (参考)
# https://github.com/celery/celery/issues/5922
# https://stackoverflow.com/questions/49373825/kombu-exceptions-encodeerror-user-is-not-json-serializable
CELERY_TASK_SERIALIZER = "pickle"

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}

import os
BASE_PATH = os.path.dirname(__file__)

TEMPLATES = [
Expand All @@ -33,8 +29,7 @@
],
},
]

CELERY_TASK_ALWAYS_EAGER = True
USE_TZ = False # For Django 5.0+

BPNOTIFY_MEDIA = {
"news": {
Expand All @@ -55,6 +50,16 @@
}
BPNOTIFY_SETTINGS_STORAGE = 'beproud.django.notify.storage.db.DBStorage'

# The name of the class to use to run the test suite
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
# For Celery Tests
app = celery.Celery()
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks(lambda: INSTALLED_APPS)

BROKER_BACKEND = 'memory'
CELERY_TASK_ALWAYS_EAGER = True

# kombu.exceptions.EncodeError: Object of type User is not JSON serializable エラーを抑止する
# (参考)
# https://github.com/celery/celery/issues/5922
# https://stackoverflow.com/questions/49373825/kombu-exceptions-encodeerror-user-is-not-json-serializable
CELERY_TASK_SERIALIZER = "pickle"
46 changes: 0 additions & 46 deletions tests.py

This file was deleted.

11 changes: 7 additions & 4 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
# content of: tox.ini , put in same dir as setup.py
[tox]
envlist = py{39,310,311}-dj{32,42}-celery{52,53},py312-dj42-celery53
envlist = py{39,310,311,312}-dj42-celery53
skipsdist = True

[pytest]
python_files = tests test_*.py *_tests.py
django_find_project = false
DJANGO_SETTINGS_MODULE = test_settings

[testenv]
basepython =
py39: python3.9
Expand All @@ -15,11 +20,9 @@ deps =
pytest-pythonpath
setuptools
six
dj32: Django>=3.2,<4.0
dj42: Django>=4.2,<5.0
celery52: celery>=5.2,<5.3
celery53: celery>=5.3,<5.4
commands=python setup.py test
commands=pytest {posargs}

# tox-gh-actionsパッケージの設定
[gh-actions]
Expand Down

0 comments on commit ada523c

Please sign in to comment.