<div dir="ltr"><div>Oktest 0.13.0 is released.</div><div><a href="https://pypi.python.org/pypi/Oktest/">https://pypi.python.org/pypi/Oktest/</a></div><div><br></div><div>Oktest is a new-style testing library for Python.</div>
<div><br></div><div>    ## unittest</div><div>    self.assertEqual(x, y)</div><div>    self.assertNotEqual(x, y)</div><div>    self.assertGreaterEqual(x, y)</div><div>    self.assertIsInstance(obj, cls)</div><div>    self.assertRegexpMatches(text, rexp)</div>
<div><br></div><div>    ## Oktest.py</div><div>    ok (x) == y</div><div>    ok (x) != y</div><div>    ok (x) >= y</div><div>    ok (obj).is_a(cls)</div><div>    ok (text).match(rexp)</div><div><br></div><div>It is possible to assert WebOb/Werkzeug/Requests response object easily.</div>
<div><br></div><div>    ok (response).is_response(200).json({"status":"OK"})</div><div><br></div><div><br></div><div>Install</div><div>  $ easy_install oktest</div><div><br></div><div>User's Guide</div>
<div>  <a href="http://www.kuwata-lab.com/oktest/oktest-py_users-guide.html">http://www.kuwata-lab.com/oktest/oktest-py_users-guide.html</a></div><div><br></div><div>Changes</div><div>  <a href="http://www.kuwata-lab.com/oktest/oktest-py_CHANGES.txt">http://www.kuwata-lab.com/oktest/oktest-py_CHANGES.txt</a></div>
<div><br></div><div><br></div><div>What's New</div><div>----------</div><div><br></div><div>* [enhance] `ok().is_response()' now supports Requests.</div><div>  Example::</div><div><br></div><div>      import requests</div>
<div>      resp = requests.get('<a href="http://www.example.com/">http://www.example.com/</a>')</div><div>      ok (resp).is_response(200, 'text/html')</div><div><br></div><div>* [enhance] (Experimental) Add 'oktest.web' module to help WSGI app testing.</div>
<div>  Example::</div><div><br></div><div>      ## create WSGI application</div><div>      class App(object):</div><div>          def __call__(self, environ, start_response):</div><div>              status  = '200 OK'</div>
<div>              headers = [('Content-Type', 'application/json')]</div><div>              body    = [b'''{"message":"Hello!"}''']  # bytes, not unicode</div><div>
              start_response(status, headers)</div><div>              return body</div><div><br></div><div>      app = App()</div><div><br></div><div>      ## test for app</div><div>      import unittest</div><div>      import oktest</div>
<div>      from oktest import test, ok, subject</div><div>      from oktest.web import WSGITest           # !!!!!</div><div><br></div><div>      http  = WSGITest(app)                     # !!!!!</div><div>      https = WSGITest(app, {'HTTPS': 'on'})    # !!!!!</div>
<div><br></div><div>      class AppTest(unittest.TestCase):</div><div><br></div><div>          with subject('GET /'):</div><div><br></div><div>              @test("Returns messaging JSON.")</div><div>              def _(self):</div>
<div>                  resp = http.GET('/')     # or http('GET', '/')</div><div>                  ok (resp).is_response(200).json({"message": "Hello!"})</div><div>                  ## or</div>
<div>                  status, headers, body = http.GET('/')   # or http('GET', '/')</div><div>                  ok (status)  == '200 OK'</div><div>                  ok (headers) == [('Content-Type', 'application/json')]</div>
<div>                  ok (body)    == [b'''{"message":"Hello!"}''']</div><div><br></div><div>      if __name__ == '__main__':</div><div>          oktest.main()</div><div>
<br></div><div><br></div><div>--</div><div>regars,</div><div>makoto kuwata</div><div><br></div></div>