[ANN] Oktest 0.4.0 released - a new-style testing library
Makoto Kuwata
kwa at kuwata-lab.com
Sat Jun 26 19:28:52 EDT 2010
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
More information about the Python-list
mailing list