Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/websdk/werkzeug/testsuite/internal.py
diff options
context:
space:
mode:
Diffstat (limited to 'websdk/werkzeug/testsuite/internal.py')
-rw-r--r--websdk/werkzeug/testsuite/internal.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/websdk/werkzeug/testsuite/internal.py b/websdk/werkzeug/testsuite/internal.py
new file mode 100644
index 0000000..1de1b5d
--- /dev/null
+++ b/websdk/werkzeug/testsuite/internal.py
@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+"""
+ werkzeug.testsuite.internal
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Internal tests.
+
+ :copyright: (c) 2011 by Armin Ronacher.
+ :license: BSD, see LICENSE for more details.
+"""
+import unittest
+
+from datetime import datetime
+from warnings import filterwarnings, resetwarnings
+
+from werkzeug.testsuite import WerkzeugTestCase
+from werkzeug.wrappers import Request, Response
+
+from werkzeug import _internal as internal
+from werkzeug.test import create_environ
+
+
+class InternalTestCase(WerkzeugTestCase):
+
+ def test_date_to_unix(self):
+ assert internal._date_to_unix(datetime(1970, 1, 1)) == 0
+ assert internal._date_to_unix(datetime(1970, 1, 1, 1, 0, 0)) == 3600
+ assert internal._date_to_unix(datetime(1970, 1, 1, 1, 1, 1)) == 3661
+ x = datetime(2010, 2, 15, 16, 15, 39)
+ assert internal._date_to_unix(x) == 1266250539
+
+ def test_easteregg(self):
+ req = Request.from_values('/?macgybarchakku')
+ resp = Response.force_type(internal._easteregg(None), req)
+ assert 'About Werkzeug' in resp.data
+ assert 'the Swiss Army knife of Python web development' in resp.data
+
+ def test_wrapper_internals(self):
+ req = Request.from_values(data={'foo': 'bar'}, method='POST')
+ req._load_form_data()
+ assert req.form.to_dict() == {'foo': 'bar'}
+
+ # second call does not break
+ req._load_form_data()
+ assert req.form.to_dict() == {'foo': 'bar'}
+
+ # check reprs
+ assert repr(req) == "<Request 'http://localhost/' [POST]>"
+ resp = Response()
+ assert repr(resp) == '<Response 0 bytes [200 OK]>'
+ resp.data = 'Hello World!'
+ assert repr(resp) == '<Response 12 bytes [200 OK]>'
+ resp.response = iter(['Test'])
+ assert repr(resp) == '<Response streamed [200 OK]>'
+
+ # unicode data does not set content length
+ response = Response([u'Hällo Wörld'])
+ headers = response.get_wsgi_headers(create_environ())
+ assert 'Content-Length' not in headers
+
+ response = Response(['Hällo Wörld'])
+ headers = response.get_wsgi_headers(create_environ())
+ assert 'Content-Length' in headers
+
+ # check for internal warnings
+ filterwarnings('error', category=Warning)
+ response = Response()
+ environ = create_environ()
+ response.response = 'What the...?'
+ self.assert_raises(Warning, lambda: list(response.iter_encoded()))
+ self.assert_raises(Warning, lambda: list(response.get_app_iter(environ)))
+ response.direct_passthrough = True
+ self.assert_raises(Warning, lambda: list(response.iter_encoded()))
+ self.assert_raises(Warning, lambda: list(response.get_app_iter(environ)))
+ resetwarnings()
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(InternalTestCase))
+ return suite