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