/tests/web/test_basicauth.py

https://bitbucket.org/prologic/circuits/ · Python · 38 lines · 28 code · 10 blank · 0 comment · 4 complexity · fdc545451e685a4cd385c21bcf9f6994 MD5 · raw file

  1. from circuits.web import Controller
  2. from circuits.web.tools import check_auth, basic_auth
  3. from .helpers import HTTPError, HTTPBasicAuthHandler
  4. from .helpers import urlopen, build_opener, install_opener
  5. class Root(Controller):
  6. def index(self):
  7. realm = "Test"
  8. users = {"admin": "admin"}
  9. encrypt = str
  10. if check_auth(self.request, self.response, realm, users, encrypt):
  11. return "Hello World!"
  12. return basic_auth(self.request, self.response, realm, users, encrypt)
  13. def test(webapp):
  14. try:
  15. f = urlopen(webapp.server.http.base)
  16. except HTTPError as e:
  17. assert e.code == 401
  18. assert e.msg == "Unauthorized"
  19. else:
  20. assert False
  21. handler = HTTPBasicAuthHandler()
  22. handler.add_password("Test", webapp.server.http.base, "admin", "admin")
  23. opener = build_opener(handler)
  24. install_opener(opener)
  25. f = urlopen(webapp.server.http.base)
  26. s = f.read()
  27. assert s == b"Hello World!"
  28. install_opener(None)