TestingΒΆ
Testing module provides unittest by pre-defined testing syntax. You can define testing syntax as method docstring, `.. test::` indicates the beginning of testing syntaxes.
Run Test:
$ dp4p test --path=./example
Available syntax:
- expect(criteria)
- expect(priority, rules)
- !expect(criteria)
- !expect(priority, rules)
rules:
controller:
code, text, json, args(arguments separated by /), params(query string, form values)
model, helper:
int, long, bool, str, json, args (arguments by list), kwargs (arguments by dict)
from dp_tornado.engine.controller import Controller as dpController
from dp_tornado.engine.model import Model as dpModel
from dp_tornado.engine.helper import Helper as dpHelper
class FooController(dpController):
def get(self):
"""
.. test::
expect(
1,
code=200,
text='foo==bar',
params={'foo': 'bar'})
"""
foo = self.get_argument('foo')
if foo == 'bar':
return self.finish('foo==bar')
self.finish('done')
def post(self):
"""
.. test::
expect(code=400, params={'foo': 'bar'})
"""
foo = self.get_argument('foo')
if foo == 'bar':
return self.finish_with_error(400)
self.finish('done')
class FooController(dpController):
def get(self):
"""
Test with params and expect json value.
.. test::
expect(json="{'foo':'bar'}", params={'foo': 'bar'})
"""
foo = self.get_argument('foo')
return self.finish({'foo': bar)
class FooController(dpController):
def get(self):
"""
Test with params and expect json value.
.. test::
expect(json={'foo':'bar'}, params={'foo': 'bar'})
"""
foo = self.get_argument('foo')
return self.finish({'foo': bar)
class FooModel(dpModel):
def foobar(self, foo):
"""
Test with kwargs arguments.
.. test::
expect(int=100, kwargs={'foo': 'bar'})
"""
if foo == 'bar':
return int(100)
return 0
class FooModel(dpModel):
def foobar(self, foo):
"""
Test with kwargs arguments.
.. test::
expect(long=100, kwargs={'foo': 'bar'})
expect(long=0, kwargs={'foo': 'foo'})
!expect(long=0, kwargs={'foo': 'bar'})
"""
if foo == 'bar':
if self.e.helper.misc.system.py_version <= 2:
return long(100)
else:
return int(100)
if self.e.helper.misc.system.py_version <= 2:
return long(0)
else:
return int(0)
class FooHelper(dpHelper):
def foobar(self, foo, bar):
"""
Test with args arguments.
.. test::
expect(bool=True, args={'foo': 'bar'})
!expect(bool=False, args={'foo': 'bar'})
"""
foo = self.get_argument('foo')
if foo == 'bar':
return True
return False