def test_container7listing(self): # container7 has web-listings = f, web-error=error.html resp = Request.blank('/v1/a/c7/').get_response(self.test_staticweb) self.assertEqual(resp.status_int, 404) self.assertIn("Web Listing Disabled", resp.body) # expect 301 if auth'd but no trailing '/' resp = Request.blank('/v1/a/c7').get_response(self.test_staticweb) self.assertEqual(resp.status_int, 301) # expect default 401 if request is not auth'd and no trailing '/' test_staticweb = FakeAuthFilter( staticweb.filter_factory({})(self.app), deny_listing=True, deny_objects=True) resp = Request.blank('/v1/a/c7').get_response(test_staticweb) self.assertEqual(resp.status_int, 401) self.assertNotIn("Hey, you're not authorized to see this!", resp.body) # expect custom 401 if request is not auth'd for listing test_staticweb = FakeAuthFilter( staticweb.filter_factory({})(self.app), deny_listing=True) resp = Request.blank('/v1/a/c7/').get_response(test_staticweb) self.assertEqual(resp.status_int, 401) self.assertIn("Hey, you're not authorized to see this!", resp.body) # expect default 401 if request is not auth'd for listing or object GET test_staticweb = FakeAuthFilter( staticweb.filter_factory({})(self.app), deny_listing=True, deny_objects=True) resp = Request.blank('/v1/a/c7/').get_response(test_staticweb) self.assertEqual(resp.status_int, 401) self.assertNotIn("Hey, you're not authorized to see this!", resp.body)
def test_container6listing(self): # container6 has web-listings = t, web-error=error.html resp = Request.blank("/v1/a/c6/").get_response(self.test_staticweb) self.assertEqual(resp.status_int, 200) # expect custom 401 if request is not auth'd for listing but is auth'd # to GET objects test_staticweb = FakeAuthFilter(staticweb.filter_factory({})(self.app), deny_listing=True) resp = Request.blank("/v1/a/c6/").get_response(test_staticweb) self.assertEqual(resp.status_int, 401) self.assertIn("Hey, you're not authorized to see this!", resp.body) # expect default 401 if request is not auth'd for listing or object GET test_staticweb = FakeAuthFilter(staticweb.filter_factory({})(self.app), deny_listing=True, deny_objects=True) resp = Request.blank("/v1/a/c6/").get_response(test_staticweb) self.assertEqual(resp.status_int, 401) self.assertNotIn("Hey, you're not authorized to see this!", resp.body)
def test_no_auth_middleware(self): resp = Request.blank('/v1/a/c3').get_response(self.test_staticweb) self.assertEqual(resp.status_int, 301) # Test without an authentication middleware before staticweb # This is no longer handled by staticweb middleware, thus not returning # a 301 redirect self.test_staticweb = staticweb.filter_factory({})(self.app) resp = Request.blank('/v1/a/c3').get_response(self.test_staticweb) self.assertEqual(resp.status_int, 200)
def test_container3subdirz_scheme(self): path = '/v1/a/c3/subdirz' scheme = 'https' test_staticweb = FakeAuthFilter( staticweb.filter_factory({'url_base': 'https://'})(self.app)) resp = Request.blank(path).get_response(test_staticweb) self.assertEqual(resp.status_int, 301) parsed = urlparse(resp.location) self.assertEqual(parsed.scheme, scheme) # We omit comparing netloc here, because swob is free to add port. self.assertEqual(parsed.path, path + '/')
def test_container6listing(self): # container6 has web-listings = t, web-error=error.html resp = Request.blank('/v1/a/c6/').get_response(self.test_staticweb) self.assertEqual(resp.status_int, 200) # expect custom 401 if request is not auth'd for listing but is auth'd # to GET objects test_staticweb = FakeAuthFilter( staticweb.filter_factory({})(self.app), deny_listing=True) resp = Request.blank('/v1/a/c6/').get_response(test_staticweb) self.assertEqual(resp.status_int, 401) self.assertIn("Hey, you're not authorized to see this!", resp.body) # expect default 401 if request is not auth'd for listing or object GET test_staticweb = FakeAuthFilter( staticweb.filter_factory({})(self.app), deny_listing=True, deny_objects=True) resp = Request.blank('/v1/a/c6/').get_response(test_staticweb) self.assertEqual(resp.status_int, 401) self.assertNotIn("Hey, you're not authorized to see this!", resp.body)
def test_container3subdirz_both(self): path = '/v1/a/c3/subdirz' scheme = 'http' netloc = 'example.com' test_staticweb = FakeAuthFilter( staticweb.filter_factory({ 'url_base': 'http://example.com'})(self.app)) resp = Request.blank(path).get_response(test_staticweb) self.assertEqual(resp.status_int, 301) parsed = urlparse(resp.location) self.assertEqual(parsed.scheme, scheme) self.assertEqual(parsed.netloc, netloc) self.assertEqual(parsed.path, path + '/')
def test_container3subdirz_host(self): path = '/v1/a/c3/subdirz' netloc = 'example.com' test_staticweb = FakeAuthFilter( staticweb.filter_factory({ 'url_base': '//%s' % (netloc,)})(self.app)) resp = Request.blank(path).get_response(test_staticweb) self.assertEqual(resp.status_int, 301) parsed = urlparse(resp.location) # We compare scheme with the default. This may change, but unlikely. self.assertEqual(parsed.scheme, 'http') self.assertEqual(parsed.netloc, netloc) self.assertEqual(parsed.path, path + '/')
def test_conf_set(self): conf = {'blah': 1} sw = staticweb.filter_factory(conf)(FakeApp()) self.assertEquals(sw.conf, conf)
def setUp(self): self.app = FakeApp() self.test_staticweb = staticweb.filter_factory({})(self.app) self._orig_get_container_info = staticweb.get_container_info staticweb.get_container_info = mock_get_container_info
def test_app_set(self): app = FakeApp() sw = staticweb.filter_factory({})(app) self.assertEquals(sw.app, app)
def test_cache_timeout_unset(self): sw = staticweb.filter_factory({})(FakeApp()) self.assertEquals(sw.cache_timeout, 300)
def test_cache_timeout_set(self): sw = staticweb.filter_factory({'cache_timeout': '1'})(FakeApp()) self.assertEquals(sw.cache_timeout, 1)
def setUp(self): self.app = FakeApp() self.test_staticweb = staticweb.filter_factory({})(self.app)
def setUp(self): self.test_staticweb = staticweb.filter_factory({})(FakeApp())