コード例 #1
0
def app():
    wsgi_app = DemoApplication()
    configure(force=True)

    clean_examples_dir()
    test_app = TestApp(app=wsgi_app, lint=False)
    yield test_app
コード例 #2
0
ファイル: helpers.py プロジェクト: zbakhshi/nanohttp
def Given(controller, *args, configuration=None, **kwargs):
    if configuration:
        configure(configuration, force=True)
    else:
        configure(force=True)

    if isinstance(controller, Application):
        application = controller
    else:
        application = Application(controller)
    return bddrest.Given(application, None, *args, **kwargs)
コード例 #3
0
ファイル: test_principal.py プロジェクト: pylover/restfulpy
def test_principal():
    __configuration__ = '''
    jwt:
      secret: JWT-SECRET
      algorithm: HS256
      max_age: 86400  # 24 Hours
      refresh_token:
        secret: JWT-REFRESH-SECRET
        algorithm: HS256
        max_age: 2678400  # 30 Days
    '''
    configure(force=True)
    settings.merge(__configuration__)

    principal = JWTPrincipal(dict(
        email='*****@*****.**',
        id=1,
        sessionId=1,
        roles=['admin']
    ))

    assert principal.email == '*****@*****.**'
    assert principal.id == 1
    assert principal.session_id == 1
    assert principal.roles == ['admin']
    assert principal.is_in_roles('admin') is True
    assert principal.is_in_roles('admin', 'god') is True

    encoded = principal.dump()

    principal = JWTPrincipal.load(encoded.decode())
    assert principal.email == '*****@*****.**'
    assert principal.id == 1
    assert principal.session_id == 1
    assert principal.roles == ['admin']
    assert principal.is_in_roles('admin') is True
    assert principal.is_in_roles('admin', 'god') is True

    principal = JWTPrincipal.load(encoded.decode(), force=True)
    assert principal.email == '*****@*****.**'
    assert principal.id == 1
    assert principal.session_id == 1
    assert principal.roles == ['admin']
    assert principal.is_in_roles('admin') is True
    assert principal.is_in_roles('admin', 'god') is True

    principal =\
        JWTPrincipal.load((b'Bearer %s' % encoded).decode(), force=True)
    assert principal.email == '*****@*****.**'
    assert principal.id == 1
    assert principal.session_id == 1
    assert principal.roles == ['admin']
    assert principal.is_in_roles('admin') is True
    assert principal.is_in_roles('admin', 'god') is True
コード例 #4
0
def test_messenger_factory():

    __configuration__ = '''
        messaging:
          default_messenger: restfulpy.messaging.ConsoleMessenger
        '''
    configure(force=True)
    settings.merge(__configuration__)

    console_messenger = create_messenger()
    assert isinstance(console_messenger, ConsoleMessenger)

    settings.messaging.default_messenger =\
        'restfulpy.messaging.providers.SmtpProvider'
    smtp_messenger = create_messenger()
    assert isinstance(smtp_messenger, SmtpProvider)
コード例 #5
0
def test_smtp_provider():
    configure(force=True)
    settings.merge(
        f'''
        smtp:
          host: smtp.example.com
          port: 587
          username: [email protected]
          password: password
          local_hostname: localhost
          tls: false
          auth: false
          ssl: false
        messaging:
          mako_modules_directory: {join(HERE, '../../data', 'mako_modules')}
          template_dirs:
            - {join(HERE, 'templates')}
        ''', )

    with mockup_smtp_server() as (server, bind):
        settings.smtp.host = bind[0]
        settings.smtp.port = bind[1]

        # Without templates
        SmtpProvider().send('*****@*****.**',
                            '*****@*****.**',
                            'Simple test body',
                            cc='*****@*****.**',
                            bcc='*****@*****.**')

        # With template
        SmtpProvider().send('*****@*****.**',
                            '*****@*****.**', {},
                            template_filename='test-email-template.mako')

        # With attachments
        attachment = io.BytesIO(b'This is test attachment file')
        attachment.name = 'path/to/file.txt'
        SmtpProvider().send('*****@*****.**',
                            '*****@*****.**',
                            'email body with Attachment',
                            attachments=[attachment])
コード例 #6
0
ファイル: application.py プロジェクト: meyt/microhttp
    def configure(self, files=None, force=False, context=None, **kwargs):
        _context = {
            "root_path": self.root_path,
            "data_dir": join(self.root_path, "data"),
            "microhttp_dir": abspath(dirname(__file__)),
        }
        if context:
            _context.update(context)

        files = files or []
        configure(context=_context, force=force, **kwargs)
        settings.merge(self.builtin_configuration)

        if files:
            for f in files:
                settings.load_file(f)

        self.after_load_configuration()
        from microhttp.ext import log

        log.configure()
コード例 #7
0
 def setUpClass(cls):
     configure(init_value=cls.__configuration__, force=True)
     cls.engine = create_engine()
     init_model(cls.engine)
     setup_schema()
コード例 #8
0
ファイル: test_principal.py プロジェクト: maryayi/restfulpy
 def setUpClass(cls):
     configure(init_value=cls.__configuration__, force=True)
コード例 #9
0
                    family=context.identity.payload['family'])

    @json
    def post(self):
        if context.form.get('url') is None:
            raise HttpBadRequest()

        url = context.form.get('url')
        if not url.startswith('http'):
            url = f'http://{url}'

        url_exist = DBSession.query(Url).filter_by(url=url).one_or_none()

        if url_exist is None:
            url_exist = Url(url=url)
            DBSession.add(url_exist)
            DBSession.commit()

        hash_id = hashids.encode(url_exist.id)

        return dict(shortener_url=f'http://localhost:8080/urls/{hash_id}')


if __name__ == '__main__':
    from nanohttp import quickstart, configure
    configure()
    try:
        quickstart(Root())
    except KeyboardInterrupt:
        print('CTLR+C just pressed')
コード例 #10
0
 def setup_class(cls):
     configure(force=True)
     settings.merge(cls.__configuration__)
コード例 #11
0
 def setUp(self):
     configure(force=True)
     self.client = WsgiTester(self.Root().load_app)
     self.client.__enter__()
コード例 #12
0
 def setUp(self):
     configure(force=True)
     self.application = self.Application(self.Root())
     self.client = WsgiTester(lambda: self.application)
     self.client.__enter__()