From a0c97b116d5be392310d26c07b499ecc8215e403 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Wed, 8 Jun 2011 09:59:50 +0200 Subject: added test cases for BasicAuthMiddleware --- test.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'test.py') diff --git a/test.py b/test.py index 043d059..92e2ce9 100755 --- a/test.py +++ b/test.py @@ -244,6 +244,33 @@ class ContentLengthMiddlewareTest(unittest.TestCase): res.status("200 Found") res.header("Content-length", "7") +class BasicAuthMiddlewareTest(unittest.TestCase): + def setUp(self): + self.staticapp = applications.StaticContent( + "200 Found", [("Content-Type", "text/plain")], "success") + checkpw = middlewares.DictAuthChecker({"bar": "baz"}) + self.app = middlewares.BasicAuthMiddleware( + wsgiref.validate.validator(self.staticapp), checkpw) + self.req = Request(self) + + def test401(self): + res = self.req(self.app) + res.status(401) + res.header("WWW-Authenticate", lambda _: True) + + def doauth(self, password="baz", status=200): + req = self.req.copy() + token = ("bar:%s" % password).encode("base64").strip() + req.setheader('http-authorization', 'Basic %s' % token) + res = req(self.app) + res.status(status) + + def test200(self): + self.doauth() + + def test401authfail(self): + self.doauth(password="spam", status=401) + def alltests(case): return unittest.TestLoader().loadTestsFromTestCase(case) @@ -253,6 +280,7 @@ fullsuite.addTest(alltests(StaticContentTest)) fullsuite.addTest(alltests(StaticFileTest)) fullsuite.addTest(alltests(AuthDigestMiddlewareTest)) fullsuite.addTest(alltests(ContentLengthMiddlewareTest)) +fullsuite.addTest(alltests(BasicAuthMiddlewareTest)) if __name__ == "__main__": runner = unittest.TextTestRunner(verbosity=2) -- cgit v1.2.3