|
4 | 4 | import io |
5 | 5 | import os |
6 | 6 | import datetime |
| 7 | +import json |
7 | 8 |
|
8 | | -from unittest import skipIf |
9 | 9 | from tempfile import NamedTemporaryFile |
10 | 10 |
|
11 | 11 | from django.core.management import call_command |
|
21 | 21 | from ietf.group.models import Role, Group |
22 | 22 | from ietf.group.utils import get_group_role_emails, get_child_group_role_emails, get_group_ad_emails |
23 | 23 | from ietf.group.factories import GroupFactory, RoleFactory |
24 | | -from ietf.utils.test_runner import set_coverage_checking |
25 | 24 | from ietf.person.factories import PersonFactory, EmailFactory |
26 | 25 | from ietf.person.models import Person |
27 | 26 | from ietf.utils.test_utils import login_testing_unauthorized, TestCase |
28 | 27 |
|
29 | | - |
30 | | -if getattr(settings,'SKIP_DOT_TO_PDF', False): |
31 | | - skip_dot_to_pdf = True |
32 | | - skip_message = "settings.SKIP_DOT_TO_PDF = %s" % skip_dot_to_pdf |
33 | | -elif ( os.path.exists(settings.DOT_BINARY) and |
34 | | - os.path.exists(settings.UNFLATTEN_BINARY)): |
35 | | - skip_dot_to_pdf = False |
36 | | - skip_message = "" |
37 | | -else: |
38 | | - skip_dot_to_pdf = True |
39 | | - skip_message = ("Skipping dependency graph tests: One or more of the binaries for dot\n " |
40 | | - "and unflatten weren't found in the locations indicated in settings.py") |
41 | | - print(" "+skip_message) |
42 | | - |
43 | 28 | class StreamTests(TestCase): |
44 | 29 | def test_streams(self): |
45 | 30 | r = self.client.get(urlreverse("ietf.group.views.streams")) |
@@ -72,56 +57,43 @@ def test_stream_edit(self): |
72 | 57 | self.assertTrue(Role.objects.filter(name="delegate", group__acronym=stream_acronym, email__address="ad2@ietf.org")) |
73 | 58 |
|
74 | 59 |
|
75 | | -@skipIf(skip_dot_to_pdf, skip_message) |
76 | | -class GroupDocDependencyGraphTests(TestCase): |
77 | | - |
| 60 | +class GroupDocDependencyTests(TestCase): |
78 | 61 | def setUp(self): |
79 | 62 | super().setUp() |
80 | | - set_coverage_checking(False) |
81 | 63 | a = WgDraftFactory() |
82 | 64 | b = WgDraftFactory() |
83 | | - RelatedDocument.objects.create(source=a,target=b.docalias.first(),relationship_id='refnorm') |
84 | | - |
85 | | - def tearDown(self): |
86 | | - set_coverage_checking(True) |
87 | | - super().tearDown() |
| 65 | + RelatedDocument.objects.create( |
| 66 | + source=a, target=b.docalias.first(), relationship_id="refnorm" |
| 67 | + ) |
88 | 68 |
|
89 | | - def test_group_document_dependency_dotfile(self): |
| 69 | + def test_group_document_dependencies(self): |
90 | 70 | for group in Group.objects.filter(Q(type="wg") | Q(type="rg")): |
91 | | - client = Client(Accept='text/plain') |
92 | | - for url in [ urlreverse("ietf.group.views.dependencies",kwargs=dict(acronym=group.acronym,output_type="dot")), |
93 | | - urlreverse("ietf.group.views.dependencies",kwargs=dict(acronym=group.acronym,group_type=group.type_id,output_type="dot")), |
94 | | - ]: |
| 71 | + client = Client(Accept="application/json") |
| 72 | + for url in [ |
| 73 | + urlreverse( |
| 74 | + "ietf.group.views.dependencies", kwargs=dict(acronym=group.acronym) |
| 75 | + ), |
| 76 | + urlreverse( |
| 77 | + "ietf.group.views.dependencies", |
| 78 | + kwargs=dict(acronym=group.acronym, group_type=group.type_id), |
| 79 | + ), |
| 80 | + ]: |
95 | 81 | r = client.get(url) |
96 | | - self.assertTrue(r.status_code == 200, "Failed to receive " |
97 | | - "a dot dependency graph for group: %s"%group.acronym) |
98 | | - self.assertGreater(len(r.content), 0, "Dot dependency graph for group " |
99 | | - "%s has no content"%group.acronym) |
| 82 | + self.assertTrue( |
| 83 | + r.status_code == 200, |
| 84 | + "Failed to receive a group document dependencies for group: %s" |
| 85 | + % group.acronym, |
| 86 | + ) |
| 87 | + self.assertGreater( |
| 88 | + len(r.content), |
| 89 | + 0, |
| 90 | + "Document dependencies for group %s has no content" % group.acronym, |
| 91 | + ) |
| 92 | + try: |
| 93 | + json.loads(r.content) |
| 94 | + except Exception as e: |
| 95 | + self.fail("JSON load failed: %s" % e) |
100 | 96 |
|
101 | | - def test_group_document_dependency_pdffile(self): |
102 | | - for group in Group.objects.filter(Q(type="wg") | Q(type="rg")): |
103 | | - client = Client(Accept='application/pdf') |
104 | | - for url in [ urlreverse("ietf.group.views.dependencies",kwargs=dict(acronym=group.acronym,output_type="pdf")), |
105 | | - urlreverse("ietf.group.views.dependencies",kwargs=dict(acronym=group.acronym,group_type=group.type_id,output_type="pdf")), |
106 | | - ]: |
107 | | - r = client.get(url) |
108 | | - self.assertTrue(r.status_code == 200, "Failed to receive " |
109 | | - "a pdf dependency graph for group: %s"%group.acronym) |
110 | | - self.assertGreater(len(r.content), 0, "Pdf dependency graph for group " |
111 | | - "%s has no content"%group.acronym) |
112 | | - |
113 | | - def test_group_document_dependency_svgfile(self): |
114 | | - for group in Group.objects.filter(Q(type="wg") | Q(type="rg")): |
115 | | - client = Client(Accept='image/svg+xml') |
116 | | - for url in [ urlreverse("ietf.group.views.dependencies",kwargs=dict(acronym=group.acronym,output_type="svg")), |
117 | | - urlreverse("ietf.group.views.dependencies",kwargs=dict(acronym=group.acronym,group_type=group.type_id,output_type="svg")), |
118 | | - ]: |
119 | | - r = client.get(url) |
120 | | - self.assertTrue(r.status_code == 200, "Failed to receive " |
121 | | - "a svg dependency graph for group: %s"%group.acronym) |
122 | | - self.assertGreater(len(r.content), 0, "svg dependency graph for group " |
123 | | - "%s has no content"%group.acronym) |
124 | | - |
125 | 97 |
|
126 | 98 | class GenerateGroupAliasesTests(TestCase): |
127 | 99 | def setUp(self): |
|
0 commit comments