From bda1306749c62ef4f11cfe567ed7d56c8ad94240 Mon Sep 17 00:00:00 2001
From: Michael Merickel <github@m.merickel.org>
Date: Mon, 15 Oct 2018 16:56:42 +0200
Subject: [PATCH] Merge pull request #3388 from mmerickel/black

---
 tests/test_static.py |  198 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 121 insertions(+), 77 deletions(-)

diff --git a/tests/test_static.py b/tests/test_static.py
index f34f8f9..a323b1d 100644
--- a/tests/test_static.py
+++ b/tests/test_static.py
@@ -5,11 +5,13 @@
 here = os.path.dirname(__file__)
 
 # 5 years from now (more or less)
-fiveyrsfuture = datetime.datetime.utcnow() + datetime.timedelta(5*365)
+fiveyrsfuture = datetime.datetime.utcnow() + datetime.timedelta(5 * 365)
+
 
 class Test_static_view_use_subpath_False(unittest.TestCase):
     def _getTargetClass(self):
         from pyramid.static import static_view
+
         return static_view
 
     def _makeOne(self, *arg, **kw):
@@ -17,15 +19,16 @@
 
     def _makeRequest(self, kw=None):
         from pyramid.request import Request
+
         environ = {
-            'wsgi.url_scheme':'http',
-            'wsgi.version':(1,0),
-            'SERVER_NAME':'example.com',
-            'SERVER_PORT':'6543',
-            'PATH_INFO':'/',
-            'SCRIPT_NAME':'',
-            'REQUEST_METHOD':'GET',
-            }
+            'wsgi.url_scheme': 'http',
+            'wsgi.version': (1, 0),
+            'SERVER_NAME': 'example.com',
+            'SERVER_PORT': '6543',
+            'PATH_INFO': '/',
+            'SCRIPT_NAME': '',
+            'REQUEST_METHOD': 'GET',
+        }
         if kw is not None:
             environ.update(kw)
         return Request(environ=environ)
@@ -39,9 +42,10 @@
 
     def test_call_adds_slash_path_info_empty(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':''})
+        request = self._makeRequest({'PATH_INFO': ''})
         context = DummyContext()
         from pyramid.httpexceptions import HTTPMovedPermanently
+
         self.assertRaises(HTTPMovedPermanently, inst, context, request)
 
     def test_path_info_slash_means_index_html(self):
@@ -53,7 +57,7 @@
 
     def test_oob_singledot(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/./index.html'})
+        request = self._makeRequest({'PATH_INFO': '/./index.html'})
         context = DummyContext()
         response = inst(context, request)
         self.assertEqual(response.status, '200 OK')
@@ -61,7 +65,7 @@
 
     def test_oob_emptyelement(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'//index.html'})
+        request = self._makeRequest({'PATH_INFO': '//index.html'})
         context = DummyContext()
         response = inst(context, request)
         self.assertEqual(response.status, '200 OK')
@@ -69,58 +73,68 @@
 
     def test_oob_dotdotslash(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/subdir/../../minimal.pt'})
+        request = self._makeRequest({'PATH_INFO': '/subdir/../../minimal.pt'})
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_oob_dotdotslash_encoded(self):
         inst = self._makeOne('tests:fixtures/static')
         request = self._makeRequest(
-            {'PATH_INFO':'/subdir/%2E%2E%2F%2E%2E/minimal.pt'})
+            {'PATH_INFO': '/subdir/%2E%2E%2F%2E%2E/minimal.pt'}
+        )
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_oob_os_sep(self):
         import os
+
         inst = self._makeOne('tests:fixtures/static')
         dds = '..' + os.sep
-        request = self._makeRequest({'PATH_INFO':'/subdir/%s%sminimal.pt' %
-                                     (dds, dds)})
+        request = self._makeRequest(
+            {'PATH_INFO': '/subdir/%s%sminimal.pt' % (dds, dds)}
+        )
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_resource_doesnt_exist(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/notthere'})
+        request = self._makeRequest({'PATH_INFO': '/notthere'})
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_resource_isdir(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/subdir/'})
+        request = self._makeRequest({'PATH_INFO': '/subdir/'})
         context = DummyContext()
         response = inst(context, request)
         self.assertTrue(b'<html>subdir</html>' in response.body)
 
     def test_resource_is_file(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/index.html'})
+        request = self._makeRequest({'PATH_INFO': '/index.html'})
         context = DummyContext()
         response = inst(context, request)
         self.assertTrue(b'<html>static</html>' in response.body)
 
     def test_resource_is_file_with_wsgi_file_wrapper(self):
         from pyramid.response import _BLOCK_SIZE
+
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/index.html'})
+        request = self._makeRequest({'PATH_INFO': '/index.html'})
+
         class _Wrapper(object):
             def __init__(self, file, block_size=None):
                 self.file = file
                 self.block_size = block_size
+
         request.environ['wsgi.file_wrapper'] = _Wrapper
         context = DummyContext()
         response = inst(context, request)
@@ -132,34 +146,40 @@
 
     def test_resource_is_file_with_cache_max_age(self):
         inst = self._makeOne('tests:fixtures/static', cache_max_age=600)
-        request = self._makeRequest({'PATH_INFO':'/index.html'})
+        request = self._makeRequest({'PATH_INFO': '/index.html'})
         context = DummyContext()
         response = inst(context, request)
         self.assertTrue(b'<html>static</html>' in response.body)
         self.assertEqual(len(response.headerlist), 5)
-        header_names = [ x[0] for x in response.headerlist ]
+        header_names = [x[0] for x in response.headerlist]
         header_names.sort()
-        self.assertEqual(header_names,
-                         ['Cache-Control', 'Content-Length', 'Content-Type',
-                          'Expires', 'Last-Modified'])
+        self.assertEqual(
+            header_names,
+            [
+                'Cache-Control',
+                'Content-Length',
+                'Content-Type',
+                'Expires',
+                'Last-Modified',
+            ],
+        )
 
     def test_resource_is_file_with_no_cache_max_age(self):
-        inst = self._makeOne('tests:fixtures/static',
-                             cache_max_age=None)
-        request = self._makeRequest({'PATH_INFO':'/index.html'})
+        inst = self._makeOne('tests:fixtures/static', cache_max_age=None)
+        request = self._makeRequest({'PATH_INFO': '/index.html'})
         context = DummyContext()
         response = inst(context, request)
         self.assertTrue(b'<html>static</html>' in response.body)
         self.assertEqual(len(response.headerlist), 3)
-        header_names = [ x[0] for x in response.headerlist ]
+        header_names = [x[0] for x in response.headerlist]
         header_names.sort()
         self.assertEqual(
-            header_names,
-            ['Content-Length', 'Content-Type', 'Last-Modified'])
+            header_names, ['Content-Length', 'Content-Type', 'Last-Modified']
+        )
 
     def test_resource_notmodified(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/index.html'})
+        request = self._makeRequest({'PATH_INFO': '/index.html'})
         request.if_modified_since = fiveyrsfuture
         context = DummyContext()
         response = inst(context, request)
@@ -173,14 +193,15 @@
 
     def test_not_found(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/notthere.html'})
+        request = self._makeRequest({'PATH_INFO': '/notthere.html'})
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_gz_resource_no_content_encoding(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/arcs.svg.tgz'})
+        request = self._makeRequest({'PATH_INFO': '/arcs.svg.tgz'})
         context = DummyContext()
         response = inst(context, request)
         self.assertEqual(response.status, '200 OK')
@@ -190,7 +211,7 @@
 
     def test_resource_no_content_encoding(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':'/index.html'})
+        request = self._makeRequest({'PATH_INFO': '/index.html'})
         context = DummyContext()
         response = inst(context, request)
         self.assertEqual(response.status, '200 OK')
@@ -198,9 +219,11 @@
         self.assertEqual(response.content_encoding, None)
         response.app_iter.close()
 
+
 class Test_static_view_use_subpath_True(unittest.TestCase):
     def _getTargetClass(self):
         from pyramid.static import static_view
+
         return static_view
 
     def _makeOne(self, *arg, **kw):
@@ -209,15 +232,16 @@
 
     def _makeRequest(self, kw=None):
         from pyramid.request import Request
+
         environ = {
-            'wsgi.url_scheme':'http',
-            'wsgi.version':(1,0),
-            'SERVER_NAME':'example.com',
-            'SERVER_PORT':'6543',
-            'PATH_INFO':'/',
-            'SCRIPT_NAME':'',
-            'REQUEST_METHOD':'GET',
-            }
+            'wsgi.url_scheme': 'http',
+            'wsgi.version': (1, 0),
+            'SERVER_NAME': 'example.com',
+            'SERVER_PORT': '6543',
+            'PATH_INFO': '/',
+            'SCRIPT_NAME': '',
+            'REQUEST_METHOD': 'GET',
+        }
         if kw is not None:
             environ.update(kw)
         return Request(environ=environ)
@@ -231,10 +255,11 @@
 
     def test_call_adds_slash_path_info_empty(self):
         inst = self._makeOne('tests:fixtures/static')
-        request = self._makeRequest({'PATH_INFO':''})
+        request = self._makeRequest({'PATH_INFO': ''})
         request.subpath = ()
         context = DummyContext()
         from pyramid.httpexceptions import HTTPMovedPermanently
+
         self.assertRaises(HTTPMovedPermanently, inst, context, request)
 
     def test_path_info_slash_means_index_html(self):
@@ -251,6 +276,7 @@
         request.subpath = ('.', 'index.html')
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_oob_emptyelement(self):
@@ -259,6 +285,7 @@
         request.subpath = ('', 'index.html')
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_oob_dotdotslash(self):
@@ -267,6 +294,7 @@
         request.subpath = ('subdir', '..', '..', 'minimal.pt')
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_oob_dotdotslash_encoded(self):
@@ -275,24 +303,28 @@
         request.subpath = ('subdir', '%2E%2E', '%2E%2E', 'minimal.pt')
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_oob_os_sep(self):
         import os
+
         inst = self._makeOne('tests:fixtures/static')
         dds = '..' + os.sep
         request = self._makeRequest()
         request.subpath = ('subdir', dds, dds, 'minimal.pt')
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_resource_doesnt_exist(self):
         inst = self._makeOne('tests:fixtures/static')
         request = self._makeRequest()
-        request.subpath = ('notthere,')
+        request.subpath = 'notthere,'
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
     def test_resource_isdir(self):
@@ -319,26 +351,32 @@
         response = inst(context, request)
         self.assertTrue(b'<html>static</html>' in response.body)
         self.assertEqual(len(response.headerlist), 5)
-        header_names = [ x[0] for x in response.headerlist ]
+        header_names = [x[0] for x in response.headerlist]
         header_names.sort()
-        self.assertEqual(header_names,
-                         ['Cache-Control', 'Content-Length', 'Content-Type',
-                          'Expires', 'Last-Modified'])
+        self.assertEqual(
+            header_names,
+            [
+                'Cache-Control',
+                'Content-Length',
+                'Content-Type',
+                'Expires',
+                'Last-Modified',
+            ],
+        )
 
     def test_resource_is_file_with_no_cache_max_age(self):
-        inst = self._makeOne('tests:fixtures/static',
-                             cache_max_age=None)
+        inst = self._makeOne('tests:fixtures/static', cache_max_age=None)
         request = self._makeRequest()
         request.subpath = ('index.html',)
         context = DummyContext()
         response = inst(context, request)
         self.assertTrue(b'<html>static</html>' in response.body)
         self.assertEqual(len(response.headerlist), 3)
-        header_names = [ x[0] for x in response.headerlist ]
+        header_names = [x[0] for x in response.headerlist]
         header_names.sort()
         self.assertEqual(
-            header_names,
-            ['Content-Length', 'Content-Type', 'Last-Modified'])
+            header_names, ['Content-Length', 'Content-Type', 'Last-Modified']
+        )
 
     def test_resource_notmodified(self):
         inst = self._makeOne('tests:fixtures/static')
@@ -361,12 +399,14 @@
         request.subpath = ('notthere.html',)
         context = DummyContext()
         from pyramid.httpexceptions import HTTPNotFound
+
         self.assertRaises(HTTPNotFound, inst, context, request)
 
-class TestQueryStringConstantCacheBuster(unittest.TestCase):
 
+class TestQueryStringConstantCacheBuster(unittest.TestCase):
     def _makeOne(self, param=None):
         from pyramid.static import QueryStringConstantCacheBuster as cls
+
         if param:
             inst = cls('foo', param)
         else:
@@ -380,31 +420,34 @@
     def test_it(self):
         fut = self._makeOne()
         self.assertEqual(
-            fut('foo', 'bar', {}),
-            ('bar', {'_query': {'x': 'foo'}}))
+            fut('foo', 'bar', {}), ('bar', {'_query': {'x': 'foo'}})
+        )
 
     def test_change_param(self):
         fut = self._makeOne('y')
         self.assertEqual(
-            fut('foo', 'bar', {}),
-            ('bar', {'_query': {'y': 'foo'}}))
+            fut('foo', 'bar', {}), ('bar', {'_query': {'y': 'foo'}})
+        )
 
     def test_query_is_already_tuples(self):
         fut = self._makeOne()
         self.assertEqual(
             fut('foo', 'bar', {'_query': [('a', 'b')]}),
-            ('bar', {'_query': (('a', 'b'), ('x', 'foo'))}))
+            ('bar', {'_query': (('a', 'b'), ('x', 'foo'))}),
+        )
 
     def test_query_is_tuple_of_tuples(self):
         fut = self._makeOne()
         self.assertEqual(
             fut('foo', 'bar', {'_query': (('a', 'b'),)}),
-            ('bar', {'_query': (('a', 'b'), ('x', 'foo'))}))
+            ('bar', {'_query': (('a', 'b'), ('x', 'foo'))}),
+        )
+
 
 class TestManifestCacheBuster(unittest.TestCase):
-
     def _makeOne(self, path, **kw):
         from pyramid.static import ManifestCacheBuster as cls
+
         return cls(path, **kw)
 
     def test_it(self):
@@ -412,22 +455,22 @@
         fut = self._makeOne(manifest_path)
         self.assertEqual(fut('foo', 'bar', {}), ('bar', {}))
         self.assertEqual(
-            fut('foo', 'css/main.css', {}),
-            ('css/main-test.css', {}))
+            fut('foo', 'css/main.css', {}), ('css/main-test.css', {})
+        )
 
     def test_it_with_relspec(self):
         fut = self._makeOne('fixtures/manifest.json')
         self.assertEqual(fut('foo', 'bar', {}), ('bar', {}))
         self.assertEqual(
-            fut('foo', 'css/main.css', {}),
-            ('css/main-test.css', {}))
+            fut('foo', 'css/main.css', {}), ('css/main-test.css', {})
+        )
 
     def test_it_with_absspec(self):
         fut = self._makeOne('tests:fixtures/manifest.json')
         self.assertEqual(fut('foo', 'bar', {}), ('bar', {}))
         self.assertEqual(
-            fut('foo', 'css/main.css', {}),
-            ('css/main-test.css', {}))
+            fut('foo', 'css/main.css', {}), ('css/main-test.css', {})
+        )
 
     def test_reload(self):
         manifest_path = os.path.join(here, 'fixtures', 'manifest.json')
@@ -437,27 +480,25 @@
         fut = inst
 
         # test without a valid manifest
-        self.assertEqual(
-            fut('foo', 'css/main.css', {}),
-            ('css/main.css', {}))
+        self.assertEqual(fut('foo', 'css/main.css', {}), ('css/main.css', {}))
 
         # swap to a real manifest, setting mtime to 0
         inst.manifest_path = manifest_path
         self.assertEqual(
-            fut('foo', 'css/main.css', {}),
-            ('css/main-test.css', {}))
+            fut('foo', 'css/main.css', {}), ('css/main-test.css', {})
+        )
 
         # ensure switching the path doesn't change the result
         inst.manifest_path = new_manifest_path
         self.assertEqual(
-            fut('foo', 'css/main.css', {}),
-            ('css/main-test.css', {}))
+            fut('foo', 'css/main.css', {}), ('css/main-test.css', {})
+        )
 
         # update mtime, should cause a reload
         inst.getmtime = lambda *args, **kwargs: 1
         self.assertEqual(
-            fut('foo', 'css/main.css', {}),
-            ('css/main-678b7c80.css', {}))
+            fut('foo', 'css/main.css', {}), ('css/main-678b7c80.css', {})
+        )
 
     def test_invalid_manifest(self):
         self.assertRaises(IOError, lambda: self._makeOne('foo'))
@@ -466,12 +507,15 @@
         inst = self._makeOne('foo', reload=True)
         self.assertEqual(inst.manifest, {})
 
+
 class DummyContext:
     pass
+
 
 class DummyStartResponse:
     status = ()
     headers = ()
+
     def __call__(self, status, headers):
         self.status = status
         self.headers = headers

--
Gitblit v1.9.3