Ejemplo n.º 1
0
def test_attributes():
    def _func():
        return 0

    decorated = tranquilize()(_func)
    assert hasattr(decorated, '_spec')
    assert hasattr(decorated, '_method')
    assert hasattr(decorated, '_methods')
    assert decorated._methods is None
Ejemplo n.º 2
0
def test_parser_untyped():
    def _func(untyped):
        pass

    decorated = tranquilize()(_func)
    parser = make_parser(decorated._spec, location='get', compat=False)
    assert len(parser.args) == 1

    assert parser.args[0].action == 'store'
    assert parser.args[0].type is str
Ejemplo n.º 3
0
def test_parser_docs():
    def _func(arg: str):
        '''docstring
        
        :param arg: a string'''
        pass

    decorated = tranquilize()(_func)
    parser = make_parser(decorated._spec, location='get', compat=False)
    assert len(parser.args) == 1

    assert parser.args[0].help == 'a string'
Ejemplo n.º 4
0
def test_method():

    # separate functions are used for
    # get and post. Calling the decorator
    # a second time updates the original
    # function
    def _funcg():
        return 0

    get = tranquilize(method='GET')(_funcg)
    assert get._method == 'get'

    def _funcp():
        return 0

    post = tranquilize(method='PosT')(_funcp)
    assert post._method == 'post'

    def _funcput():
        return 0

    post = tranquilize(method='pUt')(_funcput)
    assert post._method == 'put'
Ejemplo n.º 5
0
def test_parser_files():
    def _func(
        fnb: typing.BinaryIO,
        fnt: typing.TextIO,
        img: PIL.Image.Image,
        arr: numpy.ndarray,
    ):
        pass

    decorated = tranquilize()(_func)
    parser = make_parser(decorated._spec, location='get', compat=False)
    assert len(parser.args) == 4

    assert all([a.location[1] == 'files' for a in parser.args])
Ejemplo n.º 6
0
def test_parser_builtin():
    def _func(
        s: str,
        i: int,
        f: float,
        b: bool,
        d: datetime.date,
        dt: datetime.datetime,
    ):
        pass

    decorated = tranquilize()(_func)
    parser = make_parser(decorated._spec, location='get', compat=False)
    assert len(parser.args) == 6

    assert all([a.action == 'store' for a in parser.args])
Ejemplo n.º 7
0
def test_parser_default():
    def _func(
        typed_default: str = 'python',
        untyped_default=None,
    ):
        pass

    decorated = tranquilize()(_func)
    parser = make_parser(decorated._spec, location='get', compat=False)
    assert len(parser.args) == 2

    defaults = {a.name: a for a in parser.args}
    assert defaults['untyped_default'].default is None
    assert defaults['typed_default'].default == 'python'

    assert all(a.required == False for a in defaults.values())
Ejemplo n.º 8
0
def test_parser_list():
    def _func(
        l: list,
        L: typing.List,
        Ls: typing.List[str],
        Li: typing.List[int],
        Lf: typing.List[float],
        Lb: typing.List[bool],
        Ld: typing.List[datetime.date],
        Ldt: typing.List[datetime.datetime],
    ):
        pass

    decorated = tranquilize()(_func)
    parser = make_parser(decorated._spec, location='get', compat=False)
    assert len(parser.args) == 8

    assert all([a.action == 'append' for a in parser.args])