assamtest

mocha-style tests for python
git clone https://git.ce9e.org/assamtest.git

commit
1675c12c9d420e93da50b98230b6d5720636fe5d
parent
f388a0c55c8fa8d68358870de375d651844beb00
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2019-02-09 10:21
allow to parametrize suites like tests

Diffstat

M assamtest/test.py 32 +++++++++++++++++++-------------

1 files changed, 19 insertions, 13 deletions


diff --git a/assamtest/test.py b/assamtest/test.py

@@ -11,27 +11,33 @@ def _suite_pop(name):
   11    11 		stack[-1]['suites'].append((name, tmp))
   12    12 
   13    13 
   14    -1 def suite(name=None):
   -1    14 def _prepare(name, args, decorators, fn):
   -1    15 	_name = name or fn.__name__
   -1    16 	if args:
   -1    17 		_name += ':' + ';'.join(str(arg) for arg in args)
   -1    18 
   -1    19 	def wrapper():
   -1    20 		fn(*args)
   -1    21 
   -1    22 	for d in decorators:
   -1    23 		wrapper = d(wrapper)
   -1    24 
   -1    25 	return _name, wrapper
   -1    26 
   -1    27 
   -1    28 def suite(name=None, args=[], decorators=[]):
   15    29 	def decorator(fn):
   -1    30 		_name, wrapper = _prepare(name, args, decorators, fn)
   16    31 		_suite_push()
   17    -1 		fn()
   18    -1 		_suite_pop(name or fn.__name__)
   -1    32 		wrapper()
   -1    33 		_suite_pop(_name)
   19    34 		return fn
   20    35 	return decorator
   21    36 
   22    37 
   23    38 def test(name=None, args=[], decorators=[]):
   24    39 	def decorator(fn):
   25    -1 		_name = name or fn.__name__
   26    -1 		if args:
   27    -1 			_name += ':' + ';'.join(str(arg) for arg in args)
   28    -1 
   29    -1 		def wrapper():
   30    -1 			fn(*args)
   31    -1 
   32    -1 		for d in decorators:
   33    -1 			wrapper = d(wrapper)
   34    -1 
   -1    40 		_name, wrapper = _prepare(name, args, decorators, fn)
   35    41 		stack[-1]['tests'].append((_name, wrapper))
   36    42 		return fn
   37    43 	return decorator