def app(): wsgi_app = DemoApplication() configure(force=True) clean_examples_dir() test_app = TestApp(app=wsgi_app, lint=False) yield test_app
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)
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
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)
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])
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()
def setUpClass(cls): configure(init_value=cls.__configuration__, force=True) cls.engine = create_engine() init_model(cls.engine) setup_schema()
def setUpClass(cls): configure(init_value=cls.__configuration__, force=True)
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')
def setup_class(cls): configure(force=True) settings.merge(cls.__configuration__)
def setUp(self): configure(force=True) self.client = WsgiTester(self.Root().load_app) self.client.__enter__()
def setUp(self): configure(force=True) self.application = self.Application(self.Root()) self.client = WsgiTester(lambda: self.application) self.client.__enter__()