Skip to content

Commit 9850802

Browse files
committed
Add tests to app package, simplify tests structure
1 parent 53c5069 commit 9850802

13 files changed

Lines changed: 83 additions & 32 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ mypy:
3535
mypy --ignore-missing-imports --strict-optional easy_pdf tests --verbose
3636

3737
test:
38-
python tests/manage.py test
38+
python runtests.py
3939

4040
test-all:
4141
tox

easy_pdf/tests.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# coding=utf-8
2+
3+
from django.test import RequestFactory
4+
from django.test.testcases import TestCase
5+
6+
from .rendering import html_to_pdf, render_to_pdf, render_to_pdf_response
7+
from .views import PDFTemplateView
8+
9+
10+
class EasyPDFBasicTestCase(TestCase):
11+
def setUp(self):
12+
self.factory = RequestFactory()
13+
self.template_name = 'easy_pdf/base.html'
14+
15+
def test_pdf_rendering(self):
16+
content = html_to_pdf('<html><body><div>hello</div></body></html>')
17+
self.assertEqual(content[:4], b'%PDF')
18+
19+
def test_template_rendering(self):
20+
content = render_to_pdf(self.template_name, {'greeting': 'hello'})
21+
self.assertEqual(content[:4], b'%PDF')
22+
23+
def test_response_rendering(self):
24+
request = self.factory.get('/sample/')
25+
response = render_to_pdf_response(request, self.template_name, {'greeting': 'hello'})
26+
self.assertEqual(response.content[:4], b'%PDF')
27+
28+
def test_view_rendering(self):
29+
request = self.factory.get('/sample/')
30+
view = PDFTemplateView.as_view(template_name=self.template_name)
31+
response = view(request)
32+
self.assertEqual(response.status_code, 200)
33+
self.assertEqual(response.content[:4], b'%PDF')

runtests.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/env python
2+
# coding=utf-8
3+
4+
import os
5+
import sys
6+
7+
import django
8+
from django.conf import settings
9+
from django.test.utils import get_runner
10+
11+
if __name__ == '__main__':
12+
os.environ['DJANGO_SETTINGS_MODULE'] = 'tests.test_settings'
13+
django.setup()
14+
TestRunner = get_runner(settings)
15+
test_runner = TestRunner()
16+
failures = test_runner.run_tests(['easy_pdf', 'tests'])
17+
sys.exit(bool(failures))

setup.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
[metadata]
2+
license-file = LICENSE
3+
14
[wheel]
25
universal = 1
36

tests/manage.py

Lines changed: 0 additions & 11 deletions
This file was deleted.
File renamed without changes.
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# coding=utf-8
22

3-
from __future__ import absolute_import, division, print_function, unicode_literals
4-
53
import logging
64
import os
75
import sys
@@ -26,7 +24,7 @@ def rel(*path):
2624
'django.contrib.auth',
2725
'django.contrib.contenttypes',
2826
'easy_pdf',
29-
'testapp'
27+
'tests'
3028
]
3129
TEMPLATES = [
3230
{
@@ -49,4 +47,4 @@ def rel(*path):
4947
}
5048
STATIC_ROOT = os.path.abspath(rel('static'))
5149
STATIC_URL = '/static/'
52-
ROOT_URLCONF = 'testapp.urls'
50+
ROOT_URLCONF = 'tests.urls'

tests/testapp/__init__.py

Lines changed: 0 additions & 3 deletions
This file was deleted.

tests/testapp/apps.py

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# coding=utf-8
22

3-
from __future__ import absolute_import, division, print_function, unicode_literals
4-
53
from django.contrib.auth import get_user_model
64
from django.test.testcases import TestCase
75

@@ -18,9 +16,9 @@ def test_invoice_pdf_rendering(self):
1816
self.assertEqual(content[:4], b'%PDF')
1917

2018

21-
class PDFDetailViewTestCase(TestCase):
19+
class EasyPDFDetailViewTestCase(TestCase):
2220
def setUp(self):
23-
super(PDFDetailViewTestCase, self).setUp()
21+
super(EasyPDFDetailViewTestCase, self).setUp()
2422
model = get_user_model()
2523
self.obj = model.objects.create(username='joe', first_name='Joe', last_name='Cool')
2624

0 commit comments

Comments
 (0)