Skip to content

Commit a65cf3b

Browse files
committed
update test setup
1 parent 8477543 commit a65cf3b

File tree

9 files changed

+125
-110
lines changed

9 files changed

+125
-110
lines changed

.github/workflows/build.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ jobs:
1313
matrix:
1414
python-version: ['3.12']
1515
django-version: ['4.2', '5.0', '5.1', 'dev']
16+
database-engine: ["mysql", "postgres"]
1617

1718
services:
1819
mysql:
@@ -23,6 +24,17 @@ jobs:
2324
ports:
2425
- 3306:3306
2526
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
27+
postgres:
28+
image: postgres:latest
29+
env:
30+
POSTGRES_PASSWORD: postgres
31+
options: >-
32+
--health-cmd pg_isready
33+
--health-interval 10s
34+
--health-timeout 5s
35+
--health-retries 5
36+
ports:
37+
- 5432:5432
2638

2739
steps:
2840
- name: Install pycups and words dependency
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
local_date,label,country
2-
2017-01-02,Public Holiday,botswana
3-
2017-04-14,Good Friday,botswana
4-
2017-04-15,Public Holiday,botswana
5-
2017-04-17,Easter Monday,botswana
6-
2017-05-01,May Day/Labour Day,botswana
7-
2017-05-25,Ascension Day,botswana
8-
2017-07-01,Sir Seretse Khama Day,botswana
9-
2017-07-17,President's Day,botswana
10-
2017-07-18,Public Holiday,botswana
11-
2017-09-30,Botswana Day,botswana
12-
2017-10-02,Public Holiday,botswana
13-
2017-12-25,Christmas Day,botswana
14-
2017-12-26,Boxing Day,botswana
1+
local_date,label,country
2+
2017-01-02,Public Holiday,botswana
3+
2017-04-14,Good Friday,botswana
4+
2017-04-15,Public Holiday,botswana
5+
2017-04-17,Easter Monday,botswana
6+
2017-05-01,May Day/Labour Day,botswana
7+
2017-05-25,Ascension Day,botswana
8+
2017-07-01,Sir Seretse Khama Day,botswana
9+
2017-07-17,President's Day,botswana
10+
2017-07-18,Public Holiday,botswana
11+
2017-09-30,Botswana Day,botswana
12+
2017-10-02,Public Holiday,botswana
13+
2017-12-25,Christmas Day,botswana
14+
2017-12-26,Boxing Day,botswana
1515
2017-01-01,New Year,botswana
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#!/usr/bin/env python
2+
import sys
3+
from pathlib import Path
4+
5+
from dateutil.relativedelta import relativedelta
6+
from edc_test_settings.default_test_settings import DefaultTestSettings
7+
from edc_utils import get_utcnow
8+
9+
app_name = "edc_adverse_event"
10+
base_dir = Path(__file__).absolute().parent.parent.parent
11+
12+
project_settings = DefaultTestSettings(
13+
calling_file=__file__,
14+
BASE_DIR=base_dir,
15+
APP_NAME=app_name,
16+
ETC_DIR=str(base_dir / app_name / "tests" / "etc"),
17+
HOLIDAY_FILE=base_dir / app_name / "tests" / "etc" / "holidays.csv",
18+
SILENCED_SYSTEM_CHECKS=["sites.E101", "edc_navbar.E002", "edc_navbar.E003"],
19+
SUBJECT_VISIT_MODEL="adverse_event_app.subjectvisit",
20+
ADVERSE_EVENT_APP_LABEL="adverse_event_app",
21+
ADVERSE_EVENT_ADMIN_SITE="adverse_event_app_admin",
22+
EMAIL_ENABLED=True,
23+
EMAIL_CONTACTS={
24+
"ae_reports": "[email protected]",
25+
"data_manager": "[email protected]",
26+
27+
},
28+
EDC_PROTOCOL_STUDY_OPEN_DATETIME=get_utcnow().replace(
29+
microsecond=0, second=0, minute=0, hour=0
30+
)
31+
- relativedelta(years=2),
32+
EDC_PROTOCOL_STUDY_CLOSE_DATETIME=get_utcnow().replace(
33+
microsecond=999999, second=59, minute=59, hour=11
34+
)
35+
+ relativedelta(years=2),
36+
EDC_NAVBAR_DEFAULT=app_name,
37+
EDC_AUTH_SKIP_SITE_AUTHS=True,
38+
EDC_AUTH_SKIP_AUTH_UPDATER=True,
39+
EDC_SITES_REGISTER_DEFAULT=True,
40+
INSTALLED_APPS=[
41+
"django.contrib.admin",
42+
"django.contrib.auth",
43+
"django.contrib.contenttypes",
44+
"django.contrib.sessions",
45+
"django.contrib.messages",
46+
"django.contrib.staticfiles",
47+
"django.contrib.sites",
48+
"django_crypto_fields.apps.AppConfig",
49+
"multisite.apps.AppConfig",
50+
"edc_auth.apps.AppConfig",
51+
"edc_action_item.apps.AppConfig",
52+
"edc_adverse_event.apps.AppConfig",
53+
"edc_appointment.apps.AppConfig",
54+
"edc_consent.apps.AppConfig",
55+
"edc_crf.apps.AppConfig",
56+
"edc_data_manager.apps.AppConfig",
57+
"edc_dashboard.apps.AppConfig",
58+
"edc_device.apps.AppConfig",
59+
"edc_facility.apps.AppConfig",
60+
"edc_form_runners.apps.AppConfig",
61+
"edc_identifier.apps.AppConfig",
62+
"edc_lab.apps.AppConfig",
63+
"edc_list_data.apps.AppConfig",
64+
"edc_locator.apps.AppConfig",
65+
"edc_metadata.apps.AppConfig",
66+
"edc_navbar.apps.AppConfig",
67+
"edc_notification.apps.AppConfig",
68+
"edc_offstudy.apps.AppConfig",
69+
"edc_prn.apps.AppConfig",
70+
"edc_protocol.apps.AppConfig",
71+
"edc_randomization.apps.AppConfig",
72+
"edc_registration.apps.AppConfig",
73+
"edc_review_dashboard.apps.AppConfig",
74+
"edc_sites.apps.AppConfig",
75+
"edc_subject_dashboard.apps.AppConfig",
76+
"edc_timepoint.apps.AppConfig",
77+
"edc_visit_tracking.apps.AppConfig",
78+
"edc_visit_schedule.apps.AppConfig",
79+
"adverse_event_app.apps.AppConfig",
80+
"edc_appconfig.apps.AppConfig",
81+
],
82+
add_dashboard_middleware=True,
83+
).settings
84+
85+
86+
for k, v in project_settings.items():
87+
setattr(sys.modules[__name__], k, v)

edc_adverse_event/tests/tests/mixins.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
from model_bakery import baker
99

1010
from adverse_event_app.visit_schedules import visit_schedule
11-
12-
from ...models import CauseOfDeath
11+
from edc_adverse_event.models import CauseOfDeath
1312

1413

1514
class DeathReportTestMixin:

edc_adverse_event/tests/tests/test_ae_and_actions.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
2222
StudyTerminationConclusionAction,
2323
)
2424
from adverse_event_app.models import AeFollowup, AeInitial, AeSusar, AeTmg
25+
from edc_adverse_event.constants import CONTINUING_UPDATE, RECOVERED, RECOVERING
2526
from edc_adverse_event.models import AeClassification
2627

27-
from ...constants import CONTINUING_UPDATE, RECOVERED, RECOVERING
28-
2928

3029
@override_settings(EDC_LIST_DATA_ENABLE_AUTODISCOVER=False)
3130
class TestAeAndActions(TestCase):

edc_adverse_event/tests/tests/test_ae_form_validators.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@
77
from edc_sites.tests import SiteTestCaseMixin
88

99
from adverse_event_app import list_data
10-
from edc_adverse_event.models import AeClassification, SaeReason
11-
12-
from ...constants import AE_WITHDRAWN
13-
from ...form_validators import (
10+
from edc_adverse_event.constants import AE_WITHDRAWN
11+
from edc_adverse_event.form_validators import (
1412
AeFollowupFormValidator,
1513
AeInitialFormValidator,
1614
AeTmgFormValidator,
1715
)
16+
from edc_adverse_event.models import AeClassification, SaeReason
1817

1918

2019
@override_settings(EDC_LIST_DATA_ENABLE_AUTODISCOVER=False)

edc_adverse_event/tests/tests/test_notifications.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
from model_bakery import baker
88

99
from adverse_event_app import list_data
10+
from edc_adverse_event.notifications import (
11+
AeInitialG3EventNotification,
12+
AeInitialG4EventNotification,
13+
)
1014

1115
from ...action_items import (
1216
AeFollowupAction,
@@ -16,7 +20,6 @@
1620
DeathReportAction,
1721
DeathReportTmgAction,
1822
)
19-
from ...notifications import AeInitialG3EventNotification, AeInitialG4EventNotification
2023
from .mixins import DeathReportTestMixin
2124

2225

runtests.py

Lines changed: 2 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,4 @@
1-
#!/usr/bin/env python
2-
import logging
3-
from pathlib import Path
4-
5-
from dateutil.relativedelta import relativedelta
6-
from edc_test_utils import DefaultTestSettings, func_main
7-
from edc_utils import get_utcnow
8-
9-
app_name = "edc_adverse_event"
10-
base_dir = Path(__file__).absolute().parent
11-
12-
project_settings = DefaultTestSettings(
13-
calling_file=__file__,
14-
BASE_DIR=base_dir,
15-
APP_NAME=app_name,
16-
ETC_DIR=str(base_dir / app_name / "tests" / "etc"),
17-
SILENCED_SYSTEM_CHECKS=["sites.E101", "edc_navbar.E002", "edc_navbar.E003"],
18-
SUBJECT_VISIT_MODEL="adverse_event_app.subjectvisit",
19-
ADVERSE_EVENT_APP_LABEL="adverse_event_app",
20-
ADVERSE_EVENT_ADMIN_SITE="adverse_event_app_admin",
21-
EMAIL_ENABLED=True,
22-
EMAIL_CONTACTS={
23-
"ae_reports": "[email protected]",
24-
"data_manager": "[email protected]",
25-
26-
},
27-
EDC_PROTOCOL_STUDY_OPEN_DATETIME=get_utcnow().replace(
28-
microsecond=0, second=0, minute=0, hour=0
29-
)
30-
- relativedelta(years=2),
31-
EDC_PROTOCOL_STUDY_CLOSE_DATETIME=get_utcnow().replace(
32-
microsecond=999999, second=59, minute=59, hour=11
33-
)
34-
+ relativedelta(years=2),
35-
EDC_NAVBAR_DEFAULT=app_name,
36-
EDC_AUTH_SKIP_SITE_AUTHS=True,
37-
EDC_AUTH_SKIP_AUTH_UPDATER=True,
38-
EDC_SITES_REGISTER_DEFAULT=True,
39-
INSTALLED_APPS=[
40-
"django.contrib.admin",
41-
"django.contrib.auth",
42-
"django.contrib.contenttypes",
43-
"django.contrib.sessions",
44-
"django.contrib.messages",
45-
"django.contrib.staticfiles",
46-
"django.contrib.sites",
47-
"django_crypto_fields.apps.AppConfig",
48-
"multisite.apps.AppConfig",
49-
"edc_auth.apps.AppConfig",
50-
"edc_action_item.apps.AppConfig",
51-
"edc_adverse_event.apps.AppConfig",
52-
"edc_appointment.apps.AppConfig",
53-
"edc_consent.apps.AppConfig",
54-
"edc_crf.apps.AppConfig",
55-
"edc_data_manager.apps.AppConfig",
56-
"edc_dashboard.apps.AppConfig",
57-
"edc_device.apps.AppConfig",
58-
"edc_facility.apps.AppConfig",
59-
"edc_form_runners.apps.AppConfig",
60-
"edc_identifier.apps.AppConfig",
61-
"edc_lab.apps.AppConfig",
62-
"edc_list_data.apps.AppConfig",
63-
"edc_locator.apps.AppConfig",
64-
"edc_metadata.apps.AppConfig",
65-
"edc_navbar.apps.AppConfig",
66-
"edc_notification.apps.AppConfig",
67-
"edc_offstudy.apps.AppConfig",
68-
"edc_prn.apps.AppConfig",
69-
"edc_protocol.apps.AppConfig",
70-
"edc_randomization.apps.AppConfig",
71-
"edc_registration.apps.AppConfig",
72-
"edc_sites.apps.AppConfig",
73-
"edc_timepoint.apps.AppConfig",
74-
"edc_visit_tracking.apps.AppConfig",
75-
"edc_visit_schedule.apps.AppConfig",
76-
"adverse_event_app.apps.AppConfig",
77-
"edc_appconfig.apps.AppConfig",
78-
],
79-
add_dashboard_middleware=True,
80-
).settings
81-
82-
83-
def main():
84-
func_main(project_settings, f"{app_name}.tests")
85-
1+
from edc_test_settings.func_main import func_main2
862

873
if __name__ == "__main__":
88-
logging.basicConfig()
89-
main()
4+
func_main2("edc_adverse_event.tests.test_settings", "edc_adverse_event.tests")

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ classifiers=
1313
Environment :: Web Environment
1414
Framework :: Django
1515
Framework :: Django :: 4.2
16+
Framework :: Django :: 5.1
1617
Intended Audience :: Developers
1718
Intended Audience :: Science/Research
1819
Operating System :: OS Independent

0 commit comments

Comments
 (0)