示例#1
0
import base64
import json

from bddcli import Given, given, when, stdout, stderr, Application, status

from restfulpy import Application as RestfulpyApplication

foo = RestfulpyApplication(name='jwt')


def foo_main():
    return foo.cli_main()


app = Application('foo', 'tests.test_appcli_jwt:foo_main')


def test_jwt():
    with Given(app, 'jwt create'):
        assert stderr == ''
        assert status == 0
        assert len(stdout) > 10

        when(given + '\'{"foo": 1}\'')
        assert stderr == ''
        assert status == 0
        header, payload, signature = stdout.encode().split(b'.')
        payload = base64.urlsafe_b64decode(payload)
        assert json.loads(payload) == {'foo': 1}

示例#2
0
import json

import pytest
from bddcli import Given, given, when, stdout, stderr, Application
from itsdangerous import TimedJSONWebSignatureSerializer
from itsdangerous.exc import SignatureExpired
from nanohttp import settings

from restfulpy import Application as RestfulpyApplication

foo = RestfulpyApplication(name='jwt')
foo.__configuration__ = ''


def foo_main():
    return foo.cli_main()


app = Application('foo', 'restfulpy.tests.test_jwt_cli:foo_main')


def test_jwt():
    foo.configure(force=True)
    pirincipal = TimedJSONWebSignatureSerializer(
        settings.jwt.secret, algorithm_name=settings.jwt.algorithm)

    with Given(app, ['jwt', 'create']):
        assert stderr == ''
        token = f'{stdout}'[:-1]
        assert pirincipal.loads(token) == {}
from bddcli import Given, given, when, stdout, stderr, Application, status

from restfulpy import Application as RestfulpyApplication

foo = RestfulpyApplication(name='Foo')


def foo_main():
    return foo.cli_main()


app = Application('foo', 'tests.test_appcli_jwt:foo_main')


def test_appcli_root():
    with Given(app):
        assert stderr == ''
        assert status == 0
        assert stdout == EXPECTED_HELP

        when(given + '-V')
        assert stderr == ''
        assert status == 0
        assert stdout == '0.1.0a0\n'


EXPECTED_HELP = '''\
usage: foo [-h] [-V] [-p PREFIX] [-c FILE]
           {configuration,db,jwt,migrate,worker,mule,completion} ...

optional arguments:
示例#4
0
from bddcli import Given, stderr, Application, status
from restfulpy import Application as RestfulpyApplication

foo = RestfulpyApplication(name='migration')
app = Application('foo', 'tests.test_appcli_migrate:foo.cli_main')


def test_migrate():
    with Given(app, 'migrate'):
        assert stderr.startswith('usage: foo')
        assert status == 2


if __name__ == '__main__':  # pragma: no cover
    foo.cli_main(['migrate', '--help'])
import tempfile
from os import path

from bddcli import Given, stderr, Application, status, stdout, when, given

from restfulpy import Application as RestfulpyApplication


foo = RestfulpyApplication(name='Foo')


def foo_main():
    return foo.cli_main()


app = Application(
    'foo',
    'tests.test_appcli_configuration:foo_main'
)


def test_configuration_encrypt():

    with Given(app, 'configuration encrypt', stdin=b'abc'):
        assert stderr == b''
        assert status == 0
        assert stdout.startswith(b'#enc')
        binary = stdout.proxied_object
        when('configuration decrypt', stdin=binary)
        assert stderr == b''
        assert status == 0
示例#6
0
import tempfile
from os import path

from bddcli import Given, stderr, Application, status, stdout, when, given

from restfulpy import Application as RestfulpyApplication

foo = RestfulpyApplication(name='Foo')


def foo_main():
    return foo.cli_main()


app = Application('foo', 'tests.test_appcli_configuration:foo_main')


def test_configuration_dump():

    with Given(app, 'configuration dump'):
        assert stderr == ''
        assert status == 0
        assert len(stdout.proxied_object) > 100

        filename = tempfile.mktemp()
        when(given + filename)
        assert stderr == ''
        assert status == 0
        assert path.exists(filename)