0001-tests-improvements-33788.patch
Jenkinsfile | ||
---|---|---|
10 | 10 |
} |
11 | 11 |
post { |
12 | 12 |
always { |
13 |
junit 'junit.xml' |
|
13 |
script { |
|
14 |
utils = new Utils() |
|
15 |
utils.publish_coverage('coverage.xml') |
|
16 |
} |
|
17 |
mergeJunitResults() |
|
14 | 18 |
} |
15 | 19 |
} |
16 | 20 |
} |
test_settings.py | ||
---|---|---|
1 |
INSTALLED_APPS = ('django_journal', 'django.contrib.contenttypes' , 'django.contrib.auth', 'django.contrib.sessions', ) |
|
2 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3' }, } |
|
1 |
INSTALLED_APPS = ( |
|
2 |
'django_journal', 'django.contrib.contenttypes', 'django.contrib.auth', |
|
3 |
'django.contrib.sessions' |
|
4 |
) |
|
5 |
DATABASES = { |
|
6 |
'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2'} |
|
7 |
} |
|
3 | 8 |
SECRET_KEY = "django_tests_secret_key" |
4 |
PASSWORD_HASHERS = ( 'django.contrib.auth.hashers.MD5PasswordHasher',)
|
|
9 |
PASSWORD_HASHERS = ('django.contrib.auth.hashers.MD5PasswordHasher',) |
|
5 | 10 |
ROOT_URLCONF = 'test_urls' |
django_journal/tests.py → tests/test_main.py | ||
---|---|---|
3 | 3 |
from django.db import transaction |
4 | 4 | |
5 | 5 | |
6 |
from . import record
|
|
7 |
from . import actions
|
|
8 |
from . import models
|
|
6 |
from django_journal import record
|
|
7 |
from django_journal.actions import export_as_csv_generator
|
|
8 |
from django_journal.models import Journal
|
|
9 | 9 | |
10 | 10 | |
11 | 11 |
class JournalTestCase(TestCase): |
12 | 12 |
def setUp(self): |
13 |
models.JOURNAL_METADATA_CACHE_TIMEOUT = 0 |
|
14 | 13 |
self.users = [] |
15 | 14 |
self.groups = [] |
16 | 15 |
with transaction.atomic(): |
... | ... | |
30 | 29 |
record('logout', '{user} logged out', user=self.users[i]) |
31 | 30 | |
32 | 31 |
def test_login(self): |
33 |
for i, event in zip(range(20), models.Journal.objects.for_tag('login').order_by('id')):
|
|
32 |
for i, event in zip(range(20), Journal.objects.for_tag('login').order_by('id')): |
|
34 | 33 |
self.assertEqual(unicode(event), 'user{0} logged in'.format(i)) |
35 | 34 | |
36 | 35 |
def test_groups(self): |
37 |
for i, event in zip(range(40), models.Journal.objects.for_tag('group-changed').order_by('id')):
|
|
36 |
for i, event in zip(range(40), Journal.objects.for_tag('group-changed').order_by('id')): |
|
38 | 37 |
self.assertEqual(unicode(event), |
39 | 38 |
'user{0} gave group group{0} to user{1}'.format(i, (i+1)%20)) |
40 | 39 | |
41 | 40 |
def test_logout(self): |
42 |
for i, event in zip(range(20), models.Journal.objects.for_tag('logout').order_by('id')):
|
|
41 |
for i, event in zip(range(20), Journal.objects.for_tag('logout').order_by('id')): |
|
43 | 42 |
self.assertEqual(unicode(event), 'user{0} logged out'.format(i)) |
44 | 43 | |
45 | 44 |
def test_export_as_csv(self): |
46 |
qs = models.Journal.objects.all()
|
|
47 |
l = list(actions.export_as_csv_generator(qs))
|
|
45 |
qs = Journal.objects.all() |
|
46 |
l = list(export_as_csv_generator(qs)) |
|
48 | 47 |
self.assertEquals(set(l[0]), set(['time', 'tag', 'message', 'group', 'group__id', 'user', 'user__id', 'user1', 'user1__id', 'user2', 'user2__id'])) |
49 |
l = list(actions.export_as_csv_generator(qs[:5]))
|
|
48 |
l = list(export_as_csv_generator(qs[:5])) |
|
50 | 49 |
self.assertEquals(set(l[0]), set(['time', 'tag', 'message', 'user', 'user__id'])) |
51 | 50 |
for user in self.users: |
52 | 51 |
user.delete() |
53 |
qs = models.Journal.objects.all()
|
|
54 |
l = list(actions.export_as_csv_generator(qs))
|
|
52 |
qs = Journal.objects.all() |
|
53 |
l = list(export_as_csv_generator(qs)) |
|
55 | 54 |
self.assertEquals(l[1]['user'], '<deleted>') |
56 | 55 |
tox.ini | ||
---|---|---|
1 | 1 |
[tox] |
2 |
toxworkdir = /tmp/tox-{env:USER}/combo/{env:BRANCH_NAME:}
|
|
3 |
envlist = py2 |
|
2 |
toxworkdir = /tmp/tox-{env:USER}/django-journal/{env:BRANCH_NAME:}
|
|
3 |
envlist = py2-coverage
|
|
4 | 4 | |
5 | 5 | |
6 | 6 |
[testenv] |
7 |
basepython = python2 |
|
7 | 8 |
usedevelop = True |
8 | 9 |
deps = |
10 |
psycopg2 |
|
11 |
pytest-cov |
|
9 | 12 |
pytest |
10 | 13 |
pytest-django |
11 | 14 |
setenv = |
12 | 15 |
DJANGO_SETTINGS_MODULE=test_settings |
16 |
coverage: COVERAGE=--cov-append --cov-report xml --cov-report html --cov=django_journal/ |
|
13 | 17 |
commands = |
14 |
{posargs:py.test --junitxml=junit.xml django_journal/tests.py} |
|
18 |
py.test {posargs: {env:COVERAGE:} --junitxml=junit-{envname}.xml tests/} |
|
15 |
- |