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

M

Makoto Kuwata

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!
 

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

Members online

Forum statistics

Threads
473,763
Messages
2,569,562
Members
45,038
Latest member
OrderProperKetocapsules

Latest Threads

Top