<div dir="ltr"><div>Hi all,</div><div><br></div><div>I released Oktest.py 0.15.0.</div><div><br></div><div>* PyPI: <a href="https://pypi.python.org/pypi/Oktest/">https://pypi.python.org/pypi/Oktest/</a></div><div>* Document: <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><br></div><div>What is Oktest.py?</div><div>------------------</div><div><br></div><div>Oktest.py is a new-style testing library for Python.</div><div>Example::</div><div><br></div><div> from oktest import test, ok, NG</div>
<div> </div><div> class FooTest(unittest.TestCase):</div><div> </div><div> @test("1 + 1 should be 2")</div><div> def _(self):</div><div> ok (1+1) == 2 # same as assertEqual(2, 1+1)</div>
<div> </div><div> @test("other examples")</div><div> def _(self):</div><div> ok (s) == 'foo' # same as assertEqual(s, 'foo')</div><div> ok (s) != 'foo' # same as assertNotEqual(s, 'foo')</div>
<div> ok (n) > 0 # same as assertTrue(n > 0)</div><div> ok (fn).raises(Error) # same as assertRaises(Error, fn)</div><div> ok ([]).is_a(list) # same as assertTrue(isinstance([], list))</div>
<div> NG ([]).is_a(tuple) # same as assertTrue(not isinstance([], tuple))</div><div> ok ('A.txt').is_file() # same as assertTrue(os.path.isfile('A.txt'))</div><div> NG ('A.txt').is_dir() # same as assertTrue(not os.path.isdir('A.txt'))</div>
<div><br></div><div>See <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> for details.</div><div><br></div><div><br></div><div>Changes in this release</div>
<div>-----------------------</div><div><br></div><div>* [enhance] oktest.web.WSGITest class supports multipart form data.</div><div>* [enhance] oktest.web.WSGITest class supports 'Cookie' and 'Set-Cookie'.</div>
<div>* [enhance] New assertion methods.</div><div> ok (xs).all(lambda x: x is None) # ok when all items in xs are None</div><div> ok (xs).any(lambda x: x is None) # ok when there is None in xs</div><div>
ok (x).between(minval, maxval) # ok when minval <= x <= maxval</div><div> ok (xs).length([minlen, maxlen]) # ok when minlen <= len(xs) <= maxlen</div><div> ok (dictionary).has_key('key') # ok when dictinary has key</div>
<div> ok (dictionary).has_item('key','val') # ok when dictionary has key an val</div><div>* [enhance] New utility function 'options_of()' to get user-defined options.</div><div>* [bugfix] oktest.web.WSGITest now works on Python 3.4.</div>
<div>* [bugfix] fix oktest.web.WSGITest class to encode urlpath when multibyte.</div><div><br></div><div>See <a href="http://www.kuwata-lab.com/oktest/oktest-py_CHANGES.txt">http://www.kuwata-lab.com/oktest/oktest-py_CHANGES.txt</a> for details.</div>
<div><br></div><div><br></div><div>--</div><div>regards,</div><div>makoto kuwata</div><div><br></div></div>