[ANN] Oktest 0.4.0 released - a new-style testing library

Discussion in 'Python' started by Makoto Kuwata, Jun 27, 2010.

  1. I released Oktest 0.4.0.
    http://pypi.python.org/pypi/Oktest/
    http://packages.python.org/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.


    Download
    --------

    http://pypi.python.org/pypi/Oktest/

    Installation::

    ## if you have installed easy_install:
    $ sudo easy_install Oktest
    ## or download Oktest-$Release$.tar.gz and install it
    $ wget http://pypi.python.org/packages/source/O/Oktest/Oktest-$Release$.tar.gz
    $ tar xzf Oktest-$Release$.tar.gz
    $ cd Oktest-$Release$/
    $ sudo python setup.py install


    Example
    -------

    test_example.py::

    from oktest import ok, run
    import sys, os

    ## no need to extend TestCase class
    class Example1Test(object):

    @classmethod
    def before_all(self): # invoked only once before all tests
    os.mkdir('tmp.d')

    @classmethod
    def after_all(self): # invoked only once after all tests done
    import shutil
    shutil.rmtree('tmp.d')

    def before(self): # invoked before each test
    self.val = ['aaa', 'bbb', 'ccc']

    def after(self): # invoked after each test
    pass

    def test_valtype(self):
    ok (type(self.val)) == list

    def test_length(self):
    ok (len(self.val)) == 3


    ## 'ok()' is available with unittest.TestCase
    import unittest
    class Example2Test(unittest.TestCase):

    def setUp(self):
    self.val = ['aaa', 'bbb', 'ccc']

    def test_valtype(self):
    ok (type(self.val)) == list

    def test_length(self):
    ok (len(self.val)) == 3

    ## invoke tests
    if __name__ == '__main__':
    from oktest import run
    run(Example1Test, Example2Test)
    ## or
    #run('.*Test$') # specify class names by regular expression


    Changes in release 0.4.0
    ------------------------

    * enhanced to support 'ok (x).in_delta(y, d)' which raises assertion exception
    unless y-d < x < y+d.
    * change test script to support Python 2.7 and 3.x.
    * fixed a few bugs.



    Have fun!

    --
    regards,
    makoto kuwata
     
    Makoto Kuwata, Jun 27, 2010
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. kwatch
    Replies:
    0
    Views:
    286
    kwatch
    Apr 19, 2010
  2. kwatch
    Replies:
    0
    Views:
    228
    kwatch
    May 16, 2010
  3. Makoto Kuwata
    Replies:
    0
    Views:
    202
    Makoto Kuwata
    Jan 23, 2011
  4. Makoto Kuwata
    Replies:
    0
    Views:
    190
    Makoto Kuwata
    Feb 15, 2011
  5. Makoto Kuwata
    Replies:
    0
    Views:
    162
    Makoto Kuwata
    Aug 27, 2011
Loading...

Share This Page