|
@ -0,0 +1,31 @@ |
|
|
|
|
|
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) |