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


Makoto Kuwata

I released Oktest 0.4.0.


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.




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



from oktest import ok, run
import sys, os

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

def before_all(self): # invoked only once before all tests

def after_all(self): # invoked only once after all tests done
import shutil

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

def after(self): # invoked after each test

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!


Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question