Skip to content

Commit

Permalink
tox
Browse files Browse the repository at this point in the history
  • Loading branch information
erikvw committed Jan 25, 2019
1 parent 61cf0d3 commit 29afc0e
Show file tree
Hide file tree
Showing 7 changed files with 157 additions and 4 deletions.
3 changes: 2 additions & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ omit =
setup.py
manage.py
*/migrations/*
venv/*
.tox/*
runtests.py
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
language: python

python:
- 3.6
- 3.7

dist: xenial
Expand Down
7 changes: 6 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
include AUTHORS CHANGES README LICENSE VERSION
include AUTHORS CHANGES LICENSE VERSION
include MANIFEST.in
include *.rst
include *.txt
recursive-include docs *.rst
recursive-include edc_visit_tracking/templates *
110 changes: 110 additions & 0 deletions runtests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
#!/usr/bin/env python
import django
import logging
import sys

from django.conf import settings
from django.test.runner import DiscoverRunner
from os.path import abspath, dirname
import os


class DisableMigrations:

def __contains__(self, item):
return True

def __getitem__(self, item):
return None


base_dir = dirname(abspath(__file__))
app_name = 'edc_visit_tracking'

installed_apps = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.messages',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.staticfiles',
'django_crypto_fields.apps.AppConfig',
'django_revision.apps.AppConfig',
'edc_appointment.apps.AppConfig',
'edc_base.apps.AppConfig',
'edc_device.apps.AppConfig',
'edc_protocol.apps.AppConfig',
'edc_timepoint.apps.AppConfig',
'edc_identifier.apps.AppConfig',
'edc_registration.apps.AppConfig',
'edc_visit_schedule.apps.AppConfig',
'edc_visit_tracking.apps.EdcFacilityAppConfig',
'edc_visit_tracking.apps.EdcMetadataAppConfig',
'edc_visit_tracking.apps.AppConfig',
]

DEFAULT_SETTINGS = dict(
BASE_DIR=base_dir,
ALLOWED_HOSTS=['localhost'],
# AUTH_USER_MODEL='custom_user.CustomUser',
ROOT_URLCONF='edc_visit_tracking.urls',
STATIC_URL='/static/',
INSTALLED_APPS=installed_apps,
DATABASES={
'default': {
'ENGINE': 'django.db.backends.sqlite3',
},
},
TEMPLATES=[{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
]
},
}],
MIDDLEWARE=[
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
],

LANGUAGE_CODE='en-us',
TIME_ZONE='UTC',
USE_I18N=True,
USE_L10N=True,
USE_TZ=True,

APP_NAME=app_name,
EDC_BOOTSTRAP=3,
DEFAULT_NAVBAR_NAME='default',
SITE_ID=10,
DASHBOARD_URL_NAMES={},
COUNTRY='botswana',
HOLIDAY_FILE=os.path.join(base_dir, app_name, 'tests', 'holidays.csv'),

DEFAULT_FILE_STORAGE='inmemorystorage.InMemoryStorage',
MIGRATION_MODULES=DisableMigrations(),
PASSWORD_HASHERS=('django.contrib.auth.hashers.MD5PasswordHasher', ),
)


def main():
if not settings.configured:
settings.configure(**DEFAULT_SETTINGS)
django.setup()
failures = DiscoverRunner(failfast=True).run_tests(
['edc_visit_tracking.tests'])
sys.exit(failures)


if __name__ == "__main__":
logging.basicConfig()
main()
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[flake8]
ignore = E226,E302,E41,F401,W503
ignore = E226,E302,E41,F401,W503,E203
max-line-length = 95
max-complexity = 10
exclude = edc_visit_tracking/migrations/*,venv/*
Expand Down
8 changes: 8 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
with open(os.path.join(os.path.dirname(__file__), 'VERSION')) as f:
VERSION = f.read()

tests_require = []
with open(os.path.join(os.path.dirname(__file__), 'requirements.txt')) as f:
for line in f:
tests_require.append(line.strip())

# allow setup.py to be run from any path
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))

Expand Down Expand Up @@ -47,4 +52,7 @@
'Topic :: Internet :: WWW/HTTP',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
],
python_requires=">=3.7",
tests_require=tests_require,
test_suite='runtests.main',
)
30 changes: 30 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
[tox]
envlist =
py37-django21,
py37-djangotrunk

[testenv:docs]
changedir = docs
deps =
Sphinx
commands = sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html


[testenv]
passenv = CI TRAVIS TRAVIS_*
setenv =
PYTHONWARNINGS=module::DeprecationWarning
commands =
flake8 edc_visit_tracking
coverage run setup.py test
coverage report
deps =
-rrequirements.txt
coverage
flake8
django21: Django>=2.1,<2.2
djangotrunk: https://github.com/django/django/tarball/master

[travis]
python =
3.7: py37

0 comments on commit 29afc0e

Please sign in to comment.