ANN: Oktest-0.2.2 - a new-style testing library

Jonathan Fine jfine at pytex.org
Sun Apr 25 11:51:48 EDT 2010


Makoto Kuwata wrote:
> Hi,
> I released Oktest 0.2.2.
> 
> http://packages.python.org/Oktest/
> http://pypi.python.org/pypi/Oktest/
> 
> 
> Overview
> --------
> 
> Oktest is a new-style testing library for Python.
> ::
> 
>     from oktest import ok
>     ok (x) > 0                 # same as assert_(x > 0)
>     ok (s) == 'foo'            # same as assertEqual(s, 'foo')
>     ok (s) != 'foo'            # same as assertNotEqual(s, 'foo')
>     ok (f).raises(ValueError)  # same as assertRaises(ValueError, f)
>     ok (u'foo').is_a(unicode)  # same as assert_(isinstance(u'foo', unicode))
>     not_ok (u'foo').is_a(int)  # same as assert_(not isinstance(u'foo', int))
>     ok ('A.txt').is_file()     # same as assert_(os.path.isfile('A.txt'))
>     not_ok ('A.txt').is_dir()  # same as assert_(not os.path.isdir('A.txt'))
> 
> You can use ok() instead of 'assertXxx()' in unittest.
> 
> Oktest requires Python 2.3 or later. Oktest is ready for Python 3.
> 
> NOTICE!! Oktest is a young project and specification may change in the future.
> 
> See http://packages.python.org/Oktest/ for details.

This reminds me a bit of my own in-progress work
     http://bitbucket.org/jfine/python-testutil/

Here's an example of how it works:

     >>> def plus(a, b): return a + b
     >>> def minus(a, b): return a - b
     >>> def square(a): return a * a

     >>> x = TestScript(
     ...     plus,
     ...     (
     ...         f(2, 2) == 5,
     ...         )
     ...     )

     >>> x.run()
     [WrongValue(5, 4)]

     >>> y = TestScript(
     ...     dict(f=plus, g=square, h=map),
     ...     (
     ...         f(2, 2) == 5,
     ...         h(g, (1, 2, 3)) == [1, 3, 6],
     ...         )
     ...     )

     >>> y.run()
    [WrongValue(5, 4), WrongValue([1, 3, 6], [1, 4, 9])]


But it's not yet ready for use.
-- 
Jonathan



More information about the Python-list mailing list