tests improvements (#33788)
Move tests in their own directory, add code coverage, run tests using postgres.
This commit is contained in:
parent
9056907494
commit
c757033a56
|
@ -10,7 +10,11 @@ pipeline {
|
|||
}
|
||||
post {
|
||||
always {
|
||||
junit 'junit.xml'
|
||||
script {
|
||||
utils = new Utils()
|
||||
utils.publish_coverage('coverage.xml')
|
||||
}
|
||||
mergeJunitResults()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
INSTALLED_APPS = ('django_journal', 'django.contrib.contenttypes' , 'django.contrib.auth', 'django.contrib.sessions', )
|
||||
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3' }, }
|
||||
INSTALLED_APPS = (
|
||||
'django_journal', 'django.contrib.contenttypes', 'django.contrib.auth',
|
||||
'django.contrib.sessions'
|
||||
)
|
||||
DATABASES = {
|
||||
'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2'}
|
||||
}
|
||||
SECRET_KEY = "django_tests_secret_key"
|
||||
PASSWORD_HASHERS = ( 'django.contrib.auth.hashers.MD5PasswordHasher',)
|
||||
PASSWORD_HASHERS = ('django.contrib.auth.hashers.MD5PasswordHasher',)
|
||||
ROOT_URLCONF = 'test_urls'
|
||||
|
|
|
@ -3,14 +3,13 @@ from django.contrib.auth.models import User, Group
|
|||
from django.db import transaction
|
||||
|
||||
|
||||
from . import record
|
||||
from . import actions
|
||||
from . import models
|
||||
from django_journal import record
|
||||
from django_journal.actions import export_as_csv_generator
|
||||
from django_journal.models import Journal
|
||||
|
||||
|
||||
class JournalTestCase(TestCase):
|
||||
def setUp(self):
|
||||
models.JOURNAL_METADATA_CACHE_TIMEOUT = 0
|
||||
self.users = []
|
||||
self.groups = []
|
||||
with transaction.atomic():
|
||||
|
@ -30,27 +29,27 @@ class JournalTestCase(TestCase):
|
|||
record('logout', '{user} logged out', user=self.users[i])
|
||||
|
||||
def test_login(self):
|
||||
for i, event in zip(range(20), models.Journal.objects.for_tag('login').order_by('id')):
|
||||
for i, event in zip(range(20), Journal.objects.for_tag('login').order_by('id')):
|
||||
self.assertEqual(unicode(event), 'user{0} logged in'.format(i))
|
||||
|
||||
def test_groups(self):
|
||||
for i, event in zip(range(40), models.Journal.objects.for_tag('group-changed').order_by('id')):
|
||||
for i, event in zip(range(40), Journal.objects.for_tag('group-changed').order_by('id')):
|
||||
self.assertEqual(unicode(event),
|
||||
'user{0} gave group group{0} to user{1}'.format(i, (i+1)%20))
|
||||
|
||||
def test_logout(self):
|
||||
for i, event in zip(range(20), models.Journal.objects.for_tag('logout').order_by('id')):
|
||||
for i, event in zip(range(20), Journal.objects.for_tag('logout').order_by('id')):
|
||||
self.assertEqual(unicode(event), 'user{0} logged out'.format(i))
|
||||
|
||||
def test_export_as_csv(self):
|
||||
qs = models.Journal.objects.all()
|
||||
l = list(actions.export_as_csv_generator(qs))
|
||||
qs = Journal.objects.all()
|
||||
l = list(export_as_csv_generator(qs))
|
||||
self.assertEquals(set(l[0]), set(['time', 'tag', 'message', 'group', 'group__id', 'user', 'user__id', 'user1', 'user1__id', 'user2', 'user2__id']))
|
||||
l = list(actions.export_as_csv_generator(qs[:5]))
|
||||
l = list(export_as_csv_generator(qs[:5]))
|
||||
self.assertEquals(set(l[0]), set(['time', 'tag', 'message', 'user', 'user__id']))
|
||||
for user in self.users:
|
||||
user.delete()
|
||||
qs = models.Journal.objects.all()
|
||||
l = list(actions.export_as_csv_generator(qs))
|
||||
qs = Journal.objects.all()
|
||||
l = list(export_as_csv_generator(qs))
|
||||
self.assertEquals(l[1]['user'], '<deleted>')
|
||||
|
10
tox.ini
10
tox.ini
|
@ -1,14 +1,18 @@
|
|||
[tox]
|
||||
toxworkdir = /tmp/tox-{env:USER}/combo/{env:BRANCH_NAME:}
|
||||
envlist = py2
|
||||
toxworkdir = /tmp/tox-{env:USER}/django-journal/{env:BRANCH_NAME:}
|
||||
envlist = py2-coverage
|
||||
|
||||
|
||||
[testenv]
|
||||
basepython = python2
|
||||
usedevelop = True
|
||||
deps =
|
||||
psycopg2
|
||||
pytest-cov
|
||||
pytest
|
||||
pytest-django
|
||||
setenv =
|
||||
DJANGO_SETTINGS_MODULE=test_settings
|
||||
coverage: COVERAGE=--cov-append --cov-report xml --cov-report html --cov=django_journal/
|
||||
commands =
|
||||
{posargs:py.test --junitxml=junit.xml django_journal/tests.py}
|
||||
py.test {posargs: {env:COVERAGE:} --junitxml=junit-{envname}.xml tests/}
|
||||
|
|
Loading…
Reference in New Issue