Begin to split tests, Makefile less phony, use py.test

This commit is contained in:
Valentin Samir 2016-06-29 08:22:52 +02:00
parent 33f53f1d25
commit abda112467
11 changed files with 39 additions and 40 deletions

View File

@ -1,3 +1,8 @@
[run]
branch = True
source = cas_server
omit = cas_server/migrations*
[report]
exclude_lines =
pragma: no cover

View File

@ -1,4 +1,4 @@
.PHONY: clean build install dist test_venv test_project
.PHONY: build dist
VERSION=`python setup.py -V`
build:
@ -16,18 +16,19 @@ clean_tox:
rm -rf .tox
clean_test_venv:
rm -rf test_venv
clean: clean_pyc clean_build
clean_all: clean_pyc clean_build clean_tox clean_test_venv
dist:
python setup.py sdist
test_venv:
mkdir -p test_venv
test_venv/bin/python:
virtualenv test_venv
test_venv/bin/pip install -U --requirement requirements.txt
test_venv/bin/pip install -U --requirement requirements-dev.txt Django
test_venv/cas/manage.py:
test_venv/cas/manage.py: test_venv
mkdir -p test_venv/cas
test_venv/bin/django-admin startproject cas test_venv/cas
ln -s ../../cas_server test_venv/cas/cas_server
@ -38,16 +39,23 @@ test_venv/cas/manage.py:
test_venv/bin/python test_venv/cas/manage.py migrate
test_venv/bin/python test_venv/cas/manage.py createsuperuser
test_project: test_venv test_venv/cas/manage.py
test_venv/bin/coverage: test_venv
test_venv/bin/pip install coverage
test_venv: test_venv/bin/python
test_project: test_venv/cas/manage.py
@echo "##############################################################"
@echo "A test django project was created in $(realpath test_venv/cas)"
run_test_server: test_project
test_venv/bin/python test_venv/cas/manage.py runserver
coverage: test_venv
test_venv/bin/pip install coverage
test_venv/bin/coverage run --source='cas_server' --omit='cas_server/migrations*' run_tests
tests: test_venv
test_venv/bin/py.test
coverage: test_venv/bin/coverage
test_venv/bin/coverage run test_venv/bin/py.test
test_venv/bin/coverage html
rm htmlcov/coverage_html.js # I am really pissed off by those keybord shortcuts

View File

View File

@ -52,7 +52,7 @@ MIDDLEWARE_CLASSES = [
'django.middleware.locale.LocaleMiddleware',
]
ROOT_URLCONF = 'urls_tests'
ROOT_URLCONF = 'cas_server.tests.urls'
# Database
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
@ -60,6 +60,7 @@ ROOT_URLCONF = 'urls_tests'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}

View File

@ -1,5 +1,5 @@
"""Tests module"""
from .default_settings import settings
from cas_server.default_settings import settings
import django
from django.test import TestCase, Client

5
pytest.ini Normal file
View File

@ -0,0 +1,5 @@
[pytest]
testpaths = cas_server/tests/
DJANGO_SETTINGS_MODULE = cas_server.tests.settings
norecursedirs = .* build dist docs
python_paths = .

View File

@ -1,10 +1,11 @@
tox==1.8.1
pytest==2.6.4
pytest-django==2.7.0
pytest-pythonpath==0.3
setuptools>=5.5
tox>=1.8.1
pytest>=2.6.4
pytest-django>=2.8.0
pytest-pythonpath>=0.3
requests>=2.4
django-picklefield>=0.3.1
requests_futures>=0.9.5
django-picklefield>=0.3.1
django-bootstrap3>=5.4
lxml>=3.4
six>=1

View File

@ -1,22 +0,0 @@
#!/usr/bin/env python
import os, sys
import django
from django.conf import settings
import settings_tests
settings.configure(**settings_tests.__dict__)
django.setup()
try:
# Django <= 1.8
from django.test.simple import DjangoTestSuiteRunner
test_runner = DjangoTestSuiteRunner(verbosity=1)
except ImportError:
# Django >= 1.8
from django.test.runner import DiscoverRunner
test_runner = DiscoverRunner(verbosity=1)
failures = test_runner.run_tests(['cas_server'])
if failures:
sys.exit(failures)

View File

@ -34,7 +34,8 @@ setup(
version='0.4.4',
packages=[
'cas_server', 'cas_server.migrations',
'cas_server.management', 'cas_server.management.commands'
'cas_server.management', 'cas_server.management.commands',
'cas_server.tests'
],
include_package_data=True,
license='GPLv3',

View File

@ -17,7 +17,7 @@ deps =
-r{toxinidir}/requirements-dev.txt
[testenv]
commands=python run_tests {posargs:tests}
commands=py.test {posargs:cas_server/tests/}
[testenv:py27-django17]
basepython=python2.7