diff options
author | Helmut Grohne <helmut@subdivi.de> | 2011-06-08 09:59:50 +0200 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2011-06-08 09:59:50 +0200 |
commit | a0c97b116d5be392310d26c07b499ecc8215e403 (patch) | |
tree | c24cd12571eb5ac048f06e60cc93933daa0c3827 | |
parent | ea4994aea1b10040920cc54736299fb5c218f151 (diff) | |
download | wsgitools-a0c97b116d5be392310d26c07b499ecc8215e403.tar.gz |
added test cases for BasicAuthMiddleware
-rwxr-xr-x | test.py | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -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) |