|
| 1 | +import os |
| 2 | +from unittest import skipIf |
1 | 3 |
|
| 4 | +from django.conf import settings |
2 | 5 | from django.core.urlresolvers import reverse as urlreverse |
| 6 | +from django.db.models import Q |
| 7 | +from django.test import Client |
3 | 8 |
|
4 | | -from ietf.group.models import Role |
| 9 | +from ietf.group.models import Role, Group |
5 | 10 | from ietf.utils.test_data import make_test_data |
6 | 11 | from ietf.utils.test_utils import login_testing_unauthorized, TestCase |
7 | 12 |
|
| 13 | +if getattr(settings,'SKIP_DOT_TO_PDF', False): |
| 14 | + skip_dot_to_pdf = True |
| 15 | + skip_message = "settings.SKIP_DOT_TO_PDF = %s" % skip_dot_to_pdf |
| 16 | +elif ( os.path.exists(settings.DOT_BINARY) and |
| 17 | + os.path.exists(settings.UNFLATTEN_BINARY) and |
| 18 | + os.path.exists(settings.PS2PDF_BINARY)): |
| 19 | + skip_dot_to_pdf = False |
| 20 | + skip_message = "" |
| 21 | +else: |
| 22 | + skip_dot_to_pdf = True |
| 23 | + skip_message = ("One or more of the binaries for dot, unflatten and ps2pdf weren't found " |
| 24 | + "in the locations indicated in settings.py.") |
| 25 | + |
8 | 26 | class StreamTests(TestCase): |
9 | 27 | def test_streams(self): |
10 | 28 | make_test_data() |
@@ -36,3 +54,30 @@ def test_stream_edit(self): |
36 | 54 | r = self.client.post(url, dict(delegates="ad2@ietf.org")) |
37 | 55 | self.assertEqual(r.status_code, 302) |
38 | 56 | self.assertTrue(Role.objects.filter(name="delegate", group__acronym=stream_acronym, email__address="ad2@ietf.org")) |
| 57 | + |
| 58 | + |
| 59 | +@skipIf(skip_dot_to_pdf, skip_message) |
| 60 | +class GroupTests(TestCase): |
| 61 | + |
| 62 | + def test_group_document_dependency_dotfile(self): |
| 63 | + make_test_data() |
| 64 | + for group in Group.objects.filter(Q(type="wg") | Q(type="rg")): |
| 65 | + client = Client(Accept='application/pdf') |
| 66 | + r = client.get(urlreverse("ietf.group.info.dependencies_dot", |
| 67 | + kwargs=dict(acronym=group.acronym))) |
| 68 | + self.assertTrue(r.status_code == 200, "Failed to receive " |
| 69 | + "a dot dependency graph for group: %s"%group.acronym) |
| 70 | + self.assertGreater(len(r.content), 0, "Dot dependency graph for group " |
| 71 | + "%s has no content"%group.acronym) |
| 72 | + |
| 73 | + def test_group_document_dependency_pdffile(self): |
| 74 | + make_test_data() |
| 75 | + for group in Group.objects.filter(Q(type="wg") | Q(type="rg")): |
| 76 | + client = Client(Accept='application/pdf') |
| 77 | + r = client.get(urlreverse("ietf.group.info.dependencies_pdf", |
| 78 | + kwargs=dict(acronym=group.acronym))) |
| 79 | + self.assertTrue(r.status_code == 200, "Failed to receive " |
| 80 | + "a pdf dependency graph for group: %s"%group.acronym) |
| 81 | + self.assertGreater(len(r.content), 0, "Pdf dependency graph for group " |
| 82 | + "%s has no content"%group.acronym) |
| 83 | + |
0 commit comments