aboutsummaryrefslogtreecommitdiffstats
path: root/api/tests/test_rules.py
diff options
context:
space:
mode:
authorGravatar Johannes Christ <[email protected]>2019-01-20 09:52:57 +0100
committerGravatar Johannes Christ <[email protected]>2019-01-20 09:52:57 +0100
commitbdc337d70a386cae954399e55bb128119f601128 (patch)
treef1b90e9a2c028478e1b82325704ffdd943c4b3b6 /api/tests/test_rules.py
parentMerge branch 'django' into django+add-logs-api. (diff)
parentAdd an example `docker-compose.yml`. (diff)
Merge branch 'django' into django+add-logs-api
Diffstat (limited to 'api/tests/test_rules.py')
-rw-r--r--api/tests/test_rules.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/api/tests/test_rules.py b/api/tests/test_rules.py
new file mode 100644
index 00000000..c94f89cc
--- /dev/null
+++ b/api/tests/test_rules.py
@@ -0,0 +1,35 @@
+from django_hosts.resolvers import reverse
+
+from .base import APISubdomainTestCase
+from ..views import RulesView
+
+
+class RuleAPITests(APISubdomainTestCase):
+ def setUp(self):
+ super().setUp()
+ self.client.force_authenticate(user=None)
+
+ def test_can_access_rules_view(self):
+ url = reverse('rules', host='api')
+ response = self.client.get(url)
+
+ self.assertEqual(response.status_code, 200)
+ self.assertIsInstance(response.json(), list)
+
+ def test_link_format_query_param_produces_different_results(self):
+ url = reverse('rules', host='api')
+ markdown_links_response = self.client.get(url + '?link_format=md')
+ html_links_response = self.client.get(url + '?link_format=html')
+ self.assertNotEqual(
+ markdown_links_response.json(),
+ html_links_response.json()
+ )
+
+ def test_format_link_raises_value_error_for_invalid_target(self):
+ with self.assertRaises(ValueError):
+ RulesView._format_link("a", "b", "c")
+
+ def test_get_returns_400_for_wrong_link_format(self):
+ url = reverse('rules', host='api')
+ response = self.client.get(url + '?link_format=unknown')
+ self.assertEqual(response.status_code, 400)