diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 39f9299..4ec2681 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,8 +11,14 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.11'] - django-version: ['4.2', 'dev'] + python-version: ['3.11', '3.12'] + django-version: ['4.2', '5.0', 'dev'] + + exclude: + - python-version: '3.12' + django-version: '4.2' + - python-version: '3.11' + django-version: 'dev' services: mysql: image: mysql:latest diff --git a/README.rst b/README.rst index 4f671c1..92670cd 100644 --- a/README.rst +++ b/README.rst @@ -109,8 +109,8 @@ The AE action items are not registered by default. To register, in the root of y .. |pypi| image:: https://img.shields.io/pypi/v/edc-adverse-event.svg :target: https://pypi.python.org/pypi/edc-adverse-event -.. |actions| image:: https://github.com/clinicedc/edc-adverse-event/workflows/build/badge.svg?branch=develop - :target: https://github.com/clinicedc/edc-adverse-event/actions?query=workflow:build +.. |actions| image:: https://github.com/clinicedc/edc-adverse-event/actions/workflows/build.yml/badge.svg + :target: https://github.com/clinicedc/edc-adverse-event/actions/workflows/build.yml .. |codecov| image:: https://codecov.io/gh/clinicedc/edc-adverse-event/branch/develop/graph/badge.svg :target: https://codecov.io/gh/clinicedc/edc-adverse-event diff --git a/pyproject.toml b/pyproject.toml index 14f04fc..2b42cad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,20 +35,22 @@ exclude_lines = [ legacy_tox_ini = """ [tox] envlist = - py{311}-dj{41,42,dev}, + py{311}-dj{42,50}, + py{312}-dj{50,dev}, lint isolated_build = true [gh-actions] python = - 3.11: py311, lint + 3.11: py311 + 3.12: py312, lint [gh-actions:env] DJANGO = - 4.1: dj41 - 4.2: dj42, lint - dev: djdev + 4.2: dj42 + 5.0: dj50 + dev: djdev, lint [testenv] deps = @@ -56,8 +58,8 @@ deps = -r https://raw.githubusercontent.com/clinicedc/edc/develop/requirements.tests/test_utils.txt -r https://raw.githubusercontent.com/clinicedc/edc/develop/requirements.tests/edc.txt -r https://raw.githubusercontent.com/clinicedc/edc/develop/requirements.tests/third_party_dev.txt - dj41: Django>=4.1,<4.2 dj42: Django>=4.2,<5.0 + dj50: Django>=5.0 djdev: https://github.com/django/django/tarball/main commands = diff --git a/runtests.py b/runtests.py index 3fce08d..8f0dd6c 100644 --- a/runtests.py +++ b/runtests.py @@ -1,25 +1,20 @@ #!/usr/bin/env python import logging -import os -import sys -from os.path import abspath, dirname +from pathlib import Path -import django from dateutil.relativedelta import relativedelta -from django.conf import settings -from django.test.runner import DiscoverRunner from edc_constants.constants import IGNORE -from edc_test_utils import DefaultTestSettings +from edc_test_utils import DefaultTestSettings, func_main from edc_utils import get_utcnow app_name = "edc_adverse_event" -base_dir = dirname(abspath(__file__)) +base_dir = Path(__file__).absolute().parent -DEFAULT_SETTINGS = DefaultTestSettings( +project_settings = DefaultTestSettings( calling_file=__file__, BASE_DIR=base_dir, APP_NAME=app_name, - ETC_DIR=os.path.join(base_dir, app_name, "tests", "etc"), + ETC_DIR=str(base_dir / app_name / "tests" / "etc"), SUBJECT_VISIT_MODEL="adverse_event_app.subjectvisit", ADVERSE_EVENT_APP_LABEL="adverse_event_app", ADVERSE_EVENT_ADMIN_SITE="adverse_event_app_admin", @@ -76,12 +71,7 @@ def main(): - if not settings.configured: - settings.configure(**DEFAULT_SETTINGS) - django.setup() - tags = [t.split("=")[1] for t in sys.argv if t.startswith("--tag")] - failures = DiscoverRunner(failfast=False, tags=tags).run_tests([f"{app_name}.tests"]) - sys.exit(failures) + func_main(project_settings, f"{app_name}.tests") if __name__ == "__main__": diff --git a/setup.cfg b/setup.cfg index 970d1e2..45fff85 100644 --- a/setup.cfg +++ b/setup.cfg @@ -25,9 +25,6 @@ python_requires = >=3.11 zip_safe = False include_package_data = True packages = find: -install_requires = - inflect==6.0.4 - pydantic<2 [options.packages.find] exclude =