<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>