from unittest.mock import patch
|
|
from django.test import TestCase
|
|
|
|
|
|
class ServeDocTestCase(TestCase):
|
|
def test_it_serves_introduction(self):
|
|
r = self.client.get("/docs/")
|
|
self.assertEqual(r.status_code, 200)
|
|
|
|
self.assertContains(r, "<strong>keeps silent</strong>")
|
|
|
|
def test_it_serves_subpage(self):
|
|
r = self.client.get("/docs/reliability_tips/")
|
|
self.assertEqual(r.status_code, 200)
|
|
|
|
self.assertContains(r, "Pinging Reliability Tips")
|
|
|
|
def test_it_handles_bad_url(self):
|
|
r = self.client.get("/docs/does_not_exist/")
|
|
self.assertEqual(r.status_code, 404)
|
|
|
|
@patch("hc.front.views.os.path.exists")
|
|
def test_it_rejects_bad_characters(self, mock_exists):
|
|
r = self.client.get("/docs/NAUGHTY/")
|
|
self.assertEqual(r.status_code, 404)
|
|
|
|
# URL dispatcher's slug filter lets the uppercase letters through,
|
|
# but the view should still reject them, before any filesystem
|
|
# operations
|
|
|
|
self.assertFalse(mock_exists.called)
|