Merged in [9319] from kivinen@iki.fi:
Added test cases for cookie code. This will test all the cookie setting code, and also adds test for draft for include_text and full_draft cookie checking.
- Legacy-Id: 9325
Note: SVN reference [9319] has been migrated to Git commit 79b4688f8e
This commit is contained in:
commit
ba90fe03ef
35
changelog
35
changelog
|
@ -1,3 +1,38 @@
|
|||
ietfdb (5.13.0) ietf; urgency=medium
|
||||
|
||||
* Merged in [9317] from jmh@joelhalpern.com:
|
||||
Added some nomcom test cases.
|
||||
|
||||
* Changed the MEDIA_URL to use https instead of http, to be in line with
|
||||
other efforts to move to https in general.
|
||||
|
||||
* Merged in [9316] from willem@nlnetlabs.nl:
|
||||
Test fetching of wg and rg document dependency graphs.
|
||||
|
||||
Also added conditional running of these tests, as they depend on the
|
||||
availability of the dot, unflatten and ps2pdf binaries, which may not
|
||||
be available on all developers' systems.
|
||||
|
||||
* Merged in [9309] from tjw.ietf@gmail.com:
|
||||
Fixed #845. Commit read for merge.
|
||||
|
||||
* Merged in [9305] from willem@nlnetlabs.nl:
|
||||
Callback API test code paths
|
||||
|
||||
* Merged in [9307] from rcross@amsl.com:
|
||||
Improved test coverage of secr.drafts.
|
||||
|
||||
* Merged in [9306] from rjsparks@nostrum.com:
|
||||
Added pre-ads to .ad aliases. Keep draft aliases for drafts that have
|
||||
become RFCs for some time.
|
||||
|
||||
* Merged in [9303] from rjsparks@nostrum.com:
|
||||
Cached the wg-charter*txt pages for a time since they are very heavy to
|
||||
generate.
|
||||
|
||||
-- Henrik Levkowetz <henrik@levkowetz.com> 22 Mar 2015 12:09:18 -0700
|
||||
|
||||
|
||||
ietfdb (5.12.3) ietf; urgency=medium
|
||||
|
||||
This is a minor bugfix release which also addresses a number of testing
|
||||
|
|
296
ietf/cookies/tests.py
Normal file
296
ietf/cookies/tests.py
Normal file
|
@ -0,0 +1,296 @@
|
|||
from django.core.urlresolvers import reverse as urlreverse
|
||||
from ietf.utils.test_data import make_test_data
|
||||
from ietf.utils.test_utils import TestCase
|
||||
from Cookie import SimpleCookie
|
||||
|
||||
class CookieTests(TestCase):
|
||||
def test_settings_defaults(self):
|
||||
make_test_data()
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
|
||||
|
||||
def test_settings_defaults_from_cookies(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
|
||||
|
||||
def test_settings_values_from_cookies_garbage(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'foo', 'new_enough' : 'foo', 'expires_soon' : 'foo'})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
|
||||
|
||||
def test_settings_values_from_cookies_random(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'zappa', 'new_enough' : '365', 'expires_soon' : '5'})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertNotRegexpMatches(r.content, r'ietf-highlight-y.*new_enough')
|
||||
self.assertNotRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon')
|
||||
|
||||
def test_settings_values_from_cookies_1(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '90', 'expires_soon' : 7})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*90 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*7 days')
|
||||
|
||||
def test_settings_values_from_cookies_2(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '60', 'expires_soon' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*60 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
|
||||
|
||||
def test_settings_values_from_cookies_3(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '30', 'expires_soon' : 21})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*30 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*21 days')
|
||||
|
||||
def test_settings_values_from_cookies_4(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '21', 'expires_soon' : 30})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*21 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*30 days')
|
||||
|
||||
def test_settings_values_from_cookies_5(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '14', 'expires_soon' : 60})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*60 days')
|
||||
|
||||
def test_settings_values_from_cookies_6(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '7', 'expires_soon' : 90})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*7 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*90 days')
|
||||
|
||||
def test_full_draft(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.full_draft"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['full_draft'].value, 'off')
|
||||
self.assertListEqual(['full_draft'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
|
||||
|
||||
def test_full_draft_on(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.full_draft", kwargs=dict(enabled="on")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['full_draft'].value, 'on')
|
||||
self.assertListEqual(['full_draft'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
|
||||
def test_full_draft_off(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.full_draft", kwargs=dict(enabled="off")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['full_draft'].value, 'off')
|
||||
self.assertListEqual(['full_draft'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
|
||||
def test_full_draft_foo(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.full_draft", kwargs=dict(enabled="foo")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['full_draft'].value, 'off')
|
||||
self.assertListEqual(['full_draft'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
|
||||
def test_new_enough(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.new_enough"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['new_enough'].value, '14')
|
||||
self.assertListEqual(['new_enough'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
|
||||
|
||||
def test_new_enough_7(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '14', 'expires_soon' : 21})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="7")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['new_enough'].value, '7')
|
||||
self.assertListEqual(['new_enough'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*7 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*21 days')
|
||||
|
||||
def test_new_enough_14(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '7', 'expires_soon' : 99})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="14")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['new_enough'].value, '14')
|
||||
self.assertListEqual(['new_enough'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
|
||||
self.assertNotRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon')
|
||||
|
||||
def test_new_enough_21(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '14', 'expires_soon' : 90})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="21")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['new_enough'].value, '21')
|
||||
self.assertListEqual(['new_enough'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*21 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*90 days')
|
||||
|
||||
def test_new_enough_30(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 7})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="30")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['new_enough'].value, '30')
|
||||
self.assertListEqual(['new_enough'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*30 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*7 days')
|
||||
|
||||
def test_new_enough_60(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="60")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['new_enough'].value, '60')
|
||||
self.assertListEqual(['new_enough'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*60 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
|
||||
|
||||
def test_new_enough_90(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '22', 'expires_soon' : 60})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="90")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['new_enough'].value, '90')
|
||||
self.assertListEqual(['new_enough'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*90 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*60 days')
|
||||
|
||||
def test_expires_soon(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'expires_soon' : '14', 'new_enough' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['expires_soon'].value, '14')
|
||||
self.assertListEqual(['expires_soon'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
|
||||
|
||||
def test_expires_soon_7(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on', 'expires_soon' : '14', 'new_enough' : 21})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="7")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['expires_soon'].value, '7')
|
||||
self.assertListEqual(['expires_soon'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*7 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*21 days')
|
||||
|
||||
def test_expires_soon_14(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on', 'expires_soon' : '7', 'new_enough' : 99})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="14")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['expires_soon'].value, '14')
|
||||
self.assertListEqual(['expires_soon'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
|
||||
self.assertNotRegexpMatches(r.content, r'ietf-highlight-y.*new_enough')
|
||||
|
||||
def test_expires_soon_21(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on', 'expires_soon' : '14', 'new_enough' : 90})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="21")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['expires_soon'].value, '21')
|
||||
self.assertListEqual(['expires_soon'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*21 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*90 days')
|
||||
|
||||
def test_expires_soon_30(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'expires_soon' : '14', 'new_enough' : 7})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="30")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['expires_soon'].value, '30')
|
||||
self.assertListEqual(['expires_soon'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*30 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*7 days')
|
||||
|
||||
def test_expires_soon_60(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'expires_soon' : '14', 'new_enough' : 14})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="60")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['expires_soon'].value, '60')
|
||||
self.assertListEqual(['expires_soon'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*60 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
|
||||
|
||||
def test_expires_soon_90(self):
|
||||
make_test_data()
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off', 'expires_soon' : '22', 'new_enough' : 60})
|
||||
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="90")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.cookies['expires_soon'].value, '90')
|
||||
self.assertListEqual(['expires_soon'], r.cookies.keys())
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*90 days')
|
||||
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*60 days')
|
|
@ -5,18 +5,20 @@ from django.template import RequestContext
|
|||
|
||||
def settings(request, new_enough = -1, expires_soon = -1, full_draft = ""):
|
||||
if new_enough < 0:
|
||||
if "new_enough" in request.COOKIES:
|
||||
if "new_enough" in request.COOKIES and request.COOKIES["new_enough"].isdigit():
|
||||
new_enough = int(request.COOKIES["new_enough"])
|
||||
else:
|
||||
new_enough = 14
|
||||
if expires_soon < 0:
|
||||
if "expires_soon" in request.COOKIES:
|
||||
if "expires_soon" in request.COOKIES and request.COOKIES["expires_soon"].isdigit():
|
||||
expires_soon = int(request.COOKIES["expires_soon"])
|
||||
else:
|
||||
expires_soon = 14
|
||||
if full_draft == "":
|
||||
if "full_draft" in request.COOKIES:
|
||||
full_draft = request.COOKIES["full_draft"]
|
||||
if full_draft != 'on' and full_draft != 'off':
|
||||
full_draft = "off"
|
||||
else:
|
||||
full_draft = "off"
|
||||
return render("cookies/settings.html",
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import os
|
||||
import shutil
|
||||
import datetime
|
||||
import sys
|
||||
if sys.version_info[0] == 2 and sys.version_info[1] < 7:
|
||||
|
@ -19,6 +20,7 @@ from ietf.utils.mail import outbox
|
|||
from ietf.utils.test_data import make_test_data
|
||||
from ietf.utils.test_utils import login_testing_unauthorized
|
||||
from ietf.utils.test_utils import TestCase
|
||||
from Cookie import SimpleCookie
|
||||
|
||||
class SearchTestCase(TestCase):
|
||||
def test_search(self):
|
||||
|
@ -126,7 +128,189 @@ class SearchTestCase(TestCase):
|
|||
self.assertTrue(draft.title in r.content)
|
||||
|
||||
|
||||
class DocTestCase(TestCase):
|
||||
class DocDraftTestCase(TestCase):
|
||||
draft_text = """
|
||||
|
||||
|
||||
|
||||
Martian Special Interest Group (mars) P. Man
|
||||
Internet-Draft March 21, 2015
|
||||
Intended status: Informational
|
||||
Expires: September 22, 2015
|
||||
|
||||
|
||||
Optimizing Martian Network Topologies
|
||||
draft-ietf-mars-test-02.txt
|
||||
|
||||
Abstract
|
||||
|
||||
Techniques for achieving near-optimal Martian networks.
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This Internet-Draft is submitted in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
Internet-Drafts are working documents of the Internet Engineering
|
||||
Task Force (IETF). Note that other groups may also distribute
|
||||
working documents as Internet-Drafts. The list of current Internet-
|
||||
Drafts is at http://datatracker.ietf.org/drafts/current/.
|
||||
|
||||
Internet-Drafts are draft documents valid for a maximum of six months
|
||||
and may be updated, replaced, or obsoleted by other documents at any
|
||||
time. It is inappropriate to use Internet-Drafts as reference
|
||||
material or to cite them other than as "work in progress."
|
||||
|
||||
This Internet-Draft will expire on September 22, 2015.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2015 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.
|
||||
|
||||
This document may contain material from IETF Documents or IETF
|
||||
Contributions published or made publicly available before November
|
||||
10, 2008. The person(s) controlling the copyright in some of this
|
||||
|
||||
|
||||
|
||||
Man Expires September 22, 2015 [Page 1]
|
||||
|
||||
Internet-Draft Optimizing Martian Network Topologies March 2015
|
||||
|
||||
|
||||
material may not have granted the IETF Trust the right to allow
|
||||
modifications of such material outside the IETF Standards Process.
|
||||
Without obtaining an adequate license from the person(s) controlling
|
||||
the copyright in such materials, this document may not be modified
|
||||
outside the IETF Standards Process, and derivative works of it may
|
||||
not be created outside the IETF Standards Process, except to format
|
||||
it for publication as an RFC or to translate it into languages other
|
||||
than English.
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||
2. Security Considerations . . . . . . . . . . . . . . . . . . . 2
|
||||
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 2
|
||||
4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
5. Normative References . . . . . . . . . . . . . . . . . . . . 3
|
||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
|
||||
1. Introduction
|
||||
|
||||
This document describes how to make the Martian networks work. The
|
||||
methods used in Earth do not directly translate to the efficent
|
||||
networks on Mars, as the topographical differences caused by planets.
|
||||
For example the avian carriers, cannot be used in the Mars, thus
|
||||
RFC1149 ([RFC1149]) cannot be used in Mars.
|
||||
|
||||
Some optimizations can be done because Mars is smaller than Earth,
|
||||
thus the round trip times are smaller. Also as Mars has two moons
|
||||
instead of only one as we have in Earth, we can use both Deimos and
|
||||
Phobos when using reflecting radio links off the moon.
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
2. Security Considerations
|
||||
|
||||
As Martians are known to listen all traffic in Mars, all traffic in
|
||||
the Mars MUST be encrypted.
|
||||
|
||||
3. IANA Considerations
|
||||
|
||||
There is no new IANA considerations in this document.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Man Expires September 22, 2015 [Page 2]
|
||||
|
||||
Internet-Draft Optimizing Martian Network Topologies March 2015
|
||||
|
||||
|
||||
4. Acknowledgements
|
||||
|
||||
This document is created in the IETF-92 CodeSprint in Dallas, TX.
|
||||
|
||||
5. Normative References
|
||||
|
||||
[RFC1149] Waitzman, D., "Standard for the transmission of IP
|
||||
datagrams on avian carriers", RFC 1149, April 1990.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
Author's Address
|
||||
|
||||
Plain Man
|
||||
Deimos street
|
||||
Mars City MARS-000000
|
||||
Mars
|
||||
|
||||
Email: aliens@example.mars
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Man Expires September 22, 2015 [Page 3]
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
self.id_dir = os.path.abspath("tmp-id-dir")
|
||||
if not os.path.exists(self.id_dir):
|
||||
os.mkdir(self.id_dir)
|
||||
settings.INTERNET_DRAFT_PATH = self.id_dir
|
||||
f = open(os.path.join(self.id_dir, 'draft-ietf-mars-test-01.txt'), 'w')
|
||||
f.write(self.draft_text)
|
||||
f.close()
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.id_dir)
|
||||
|
||||
def test_document_draft(self):
|
||||
draft = make_test_data()
|
||||
|
||||
|
@ -140,6 +324,47 @@ class DocTestCase(TestCase):
|
|||
r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("Active Internet-Draft" in r.content)
|
||||
self.assertTrue("[include full document text]" in r.content)
|
||||
self.assertFalse("Deimos street" in r.content)
|
||||
|
||||
r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)) + "?include_text=0")
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("Active Internet-Draft" in r.content)
|
||||
self.assertFalse("[include full document text]" in r.content)
|
||||
self.assertTrue("Deimos street" in r.content)
|
||||
|
||||
r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)) + "?include_text=foo")
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("Active Internet-Draft" in r.content)
|
||||
self.assertFalse("[include full document text]" in r.content)
|
||||
self.assertTrue("Deimos street" in r.content)
|
||||
|
||||
r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)) + "?include_text=1")
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("Active Internet-Draft" in r.content)
|
||||
self.assertFalse("[include full document text]" in r.content)
|
||||
self.assertTrue("Deimos street" in r.content)
|
||||
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'on'})
|
||||
r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("Active Internet-Draft" in r.content)
|
||||
self.assertFalse("[include full document text]" in r.content)
|
||||
self.assertTrue("Deimos street" in r.content)
|
||||
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'off'})
|
||||
r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("Active Internet-Draft" in r.content)
|
||||
self.assertTrue("[include full document text]" in r.content)
|
||||
self.assertFalse("Deimos street" in r.content)
|
||||
|
||||
self.client.cookies = SimpleCookie({'full_draft': 'foo'})
|
||||
r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("Active Internet-Draft" in r.content)
|
||||
self.assertTrue("[include full document text]" in r.content)
|
||||
self.assertFalse("Deimos street" in r.content)
|
||||
|
||||
# expired draft
|
||||
draft.set_state(State.objects.get(type="draft", slug="expired"))
|
||||
|
@ -237,6 +462,7 @@ class DocTestCase(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("%s-00"%docname in r.content)
|
||||
|
||||
class DocTestCase(TestCase):
|
||||
def test_document_charter(self):
|
||||
make_test_data()
|
||||
|
||||
|
|
Loading…
Reference in a new issue