def setUp(self): super(ScriptTests, self).setUp() fd, self.conf_file_path = tempfile.mkstemp() os.write(fd, CONFIG.encode('ascii')) mdb = MongoDB(MONGO_URI) self.db = mdb.get_database()
def setUp(self): self.config = testing.setUp() mdb = MongoDB(MONGO_URI) self.db = mdb.get_database() self.pm = PasswordsManager(self.db) self.user_id = self.db.users.insert({'name': 'John'}, safe=True) self.user = self.db.users.find_one({'_id': self.user_id}, safe=True)
def setUp(self): self.config = testing.setUp() self.config.include('yithlibraryserver') self.config.include('yithlibraryserver.user') self.request = testing.DummyRequest() self.request.session = {} mdb = MongoDB(MONGO_URI) self.request.db = mdb.get_database()
def setUp(self): self.config = testing.setUp() mdb = MongoDB(MONGO_URI) self.db = mdb.get_database() self.freezer = freeze_time('2013-01-02 10:11:02') self.freezer.start() self.request = testing.DummyRequest() self.request.db = self.db
def setUp(self): self.config = testing.setUp() mdb = MongoDB(MONGO_URI) self.db = mdb.get_database() os.environ['YITH_FAKE_DATETIME'] = '2013-1-2-10-11-02' self.request = testing.DummyRequest() self.request.datetime_service = FakeDatetimeService(self.request) self.request.db = self.db
def setUp(self): self.config = testing.setUp() mdb = MongoDB(MONGO_URI) self.db = mdb.get_database()
def setUp(self): self.config = testing.setUp() self.config.include('yithlibraryserver.user') mdb = MongoDB(MONGO_URI) self.db = mdb.get_database()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ # read pyramid_mailer options for key, default in ( ('host', 'localhost'), ('port', '25'), ('username', None), ('password', None), ('default_sender', '*****@*****.**') ): option = 'mail_' + key settings[option] = read_setting_from_env(settings, option, default) # read admin_emails option settings['admin_emails'] = read_setting_from_env(settings, 'admin_emails', '').split() # read Google Analytics code settings['google_analytics_code'] = read_setting_from_env( settings, 'google_analytics_code', None) # read the auth secret settings['auth_tk_secret'] = read_setting_from_env( settings, 'auth_tk_secret', None) if settings['auth_tk_secret'] is None: raise ConfigurationError('The auth_tk_secret configuration ' 'option is required') # read the Mongodb URI settings['mongo_uri'] = read_setting_from_env(settings, 'mongo_uri', None) if settings['mongo_uri'] is None: raise ConfigurationError('The mongo_uri configuration ' 'option is required') # Available languages available_languages = read_setting_from_env(settings, 'available_languages', 'en es') settings['available_languages'] = [ lang for lang in available_languages.split(' ') if lang ] # Public URL root settings['public_url_root'] = read_setting_from_env( settings, 'public_url_root', 'http://localhost:6543/') # Google, Facebook and Microsoft Live Connect settings for pyramid_sna settings['google_scope'] = 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile' settings['google_callback'] = 'yithlibraryserver.sna_callbacks.google_callback' settings['facebook_scope'] = 'email' settings['facebook_callback'] = 'yithlibraryserver.sna_callbacks.facebook_callback' settings['liveconnect_callback'] = 'yithlibraryserver.sna_callbacks.liveconnect_callback' # webassets settings['webassets.base_dir'] = 'yithlibraryserver:static' settings['webassets.base_url'] = 'static' settings['webassets.static_view'] = 'True' here = os.path.dirname(os.path.abspath(__file__)) manifest_path = ('static', 'build', 'manifest.json') settings['webassets.manifest'] = 'json:%s' % os.path.join(here, *manifest_path) # main config object config = Configurator( settings=settings, root_factory=RootFactory, authorization_policy=ACLAuthorizationPolicy(), authentication_policy=AuthTktAuthenticationPolicy( settings['auth_tk_secret'], wild_domain=False, hashalg='sha512', ), locale_negotiator=locale_negotiator, ) config.add_renderer('json', json_renderer) config.add_static_view('static', 'static', cache_max_age=3600) # Chameleon setup config.include('pyramid_chameleon') # Beaker (sessions) setup config.include('pyramid_beaker') # Webassets config.include('pyramid_webassets') # Setup of stuff used only in the tests if 'testing' in settings and asbool(settings['testing']): config.include('pyramid_mailer.testing') # add test only views to make it easy to login and add # things to the session during the tests from yithlibraryserver.testing import view_test_login from yithlibraryserver.testing import view_test_add_to_session config.add_route('test_login', '/__login/{user}') config.add_view(view_test_login, route_name='test_login') config.add_route('test_add_to_session', '/__session') config.add_view(view_test_add_to_session, route_name='test_add_to_session') else: # pragma: no cover config.include('pyramid_mailer') # Google/Facebook authentication config.include('pyramid_sna') config.include('pyramid_tm') # Mongodb setup mongodb = MongoDB(settings['mongo_uri']) config.registry.settings['mongodb'] = mongodb config.registry.settings['db_conn'] = mongodb.get_connection() # CORS support setup config.registry.settings['cors_manager'] = CORSManager( read_setting_from_env(settings, 'cors_allowed_origins', '')) # Routes config.include('yithlibraryserver.backups') config.include('yithlibraryserver.contributions') config.include('yithlibraryserver.oauth2') config.include('yithlibraryserver.password') # Translation directories config.add_translation_dirs('yithlibraryserver:locale/') # the user package needs to be included before twitter, # facebook and google config.include('yithlibraryserver.user') config.include('yithlibraryserver.twitter') if config.registry.settings['facebook_auth_enabled']: config.add_identity_provider('Facebook') if config.registry.settings['google_auth_enabled']: config.add_identity_provider('Google') if config.registry.settings['liveconnect_auth_enabled']: config.add_identity_provider('Live Connect') config.include('yithlibraryserver.persona') # assets config.include('yithlibraryserver.assets') includeme(config) # Subscribers config.include('yithlibraryserver.subscribers') config.scan(ignore=[re.compile('.*tests.*').search, re.compile('.*testing.*').search]) return config.make_wsgi_app()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ # read pyramid_mailer options for key in ('host', 'port', 'username', 'password', 'default_sender'): option = 'mail_' + key settings[option] = read_setting_from_env(settings, option) # read admin_emails option settings['admin_emails'] = read_setting_from_env(settings, 'admin_emails') if settings['admin_emails'] is not None: settings['admin_emails'] = settings['admin_emails'].split() # read Google Analytics code settings['google_analytics_code'] = read_setting_from_env( settings, 'google_analytics_code', None) # read the auth secret settings['auth_tk_secret'] = read_setting_from_env( settings, 'auth_tk_secret', None) if settings['auth_tk_secret'] is None: raise ConfigurationError('The auth_tk_secret configuration ' 'option is required') # read the Mongodb URI settings['mongo_uri'] = read_setting_from_env(settings, 'mongo_uri', None) if settings['mongo_uri'] is None: raise ConfigurationError('The mongo_uri configuration ' 'option is required') # main config object config = Configurator( settings=settings, root_factory=RootFactory, authorization_policy=ACLAuthorizationPolicy(), authentication_policy=AuthTktAuthenticationPolicy( settings['auth_tk_secret'], wild_domain=False, ), ) config.add_renderer('json', json_renderer) config.add_static_view('static', 'static', cache_max_age=3600) # Beaker (sessions) setup config.include('pyramid_beaker') # Mailer setup if 'testing' in settings and settings['testing'] is True: config.include('pyramid_mailer.testing') else: # pragma: no cover config.include('pyramid_mailer') config.include('pyramid_tm') # Mongodb setup mongodb = MongoDB(settings['mongo_uri']) config.registry.settings['mongodb'] = mongodb config.registry.settings['db_conn'] = mongodb.get_connection() # CORS support setup config.registry.settings['cors_manager'] = CORSManager( read_setting_from_env(settings, 'cors_allowed_origins', '')) # Routes config.include('yithlibraryserver.oauth2') config.include('yithlibraryserver.password') # the user package needs to be included before twitter, # facebook and google config.include('yithlibraryserver.user') config.include('yithlibraryserver.twitter') config.include('yithlibraryserver.facebook') config.include('yithlibraryserver.google') config.include('yithlibraryserver.persona') includeme(config) # Subscribers config.include('yithlibraryserver.subscribers') config.scan(ignore=[re.compile('.*tests.*').search, '.testing']) return config.make_wsgi_app()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ # read pyramid_mailer options for key, default in ( ('host', 'localhost'), ('port', '25'), ('username', None), ('password', None), ('default_sender', '*****@*****.**') ): option = 'mail_' + key settings[option] = read_setting_from_env(settings, option, default) # read admin_emails option settings['admin_emails'] = read_setting_from_env(settings, 'admin_emails') if settings['admin_emails'] is not None: settings['admin_emails'] = settings['admin_emails'].split() # read Google Analytics code settings['google_analytics_code'] = read_setting_from_env( settings, 'google_analytics_code', None) # read the auth secret settings['auth_tk_secret'] = read_setting_from_env( settings, 'auth_tk_secret', None) if settings['auth_tk_secret'] is None: raise ConfigurationError('The auth_tk_secret configuration ' 'option is required') # read the Mongodb URI settings['mongo_uri'] = read_setting_from_env(settings, 'mongo_uri', None) if settings['mongo_uri'] is None: raise ConfigurationError('The mongo_uri configuration ' 'option is required') # Available languages available_languages = read_setting_from_env(settings, 'available_languages', 'en es') settings['available_languages'] = [ lang for lang in available_languages.split(' ') if lang ] # Public URL root settings['public_url_root'] = read_setting_from_env( settings, 'public_url_root', 'http://localhost:6543/') # main config object config = Configurator( settings=settings, root_factory=RootFactory, authorization_policy=ACLAuthorizationPolicy(), authentication_policy=AuthTktAuthenticationPolicy( settings['auth_tk_secret'], wild_domain=False, hashalg='sha512', ), locale_negotiator=locale_negotiator, ) config.add_renderer('json', json_renderer) config.add_static_view('static', 'static', cache_max_age=3600) # Beaker (sessions) setup config.include('pyramid_beaker') # Mailer setup if 'testing' in settings and asbool(settings['testing']): config.include('pyramid_mailer.testing') config.include('yithlibraryserver.datetimeservice.testing') else: # pragma: no cover config.include('pyramid_mailer') config.include('yithlibraryserver.datetimeservice') config.include('pyramid_tm') # Mongodb setup mongodb = MongoDB(settings['mongo_uri']) config.registry.settings['mongodb'] = mongodb config.registry.settings['db_conn'] = mongodb.get_connection() # CORS support setup config.registry.settings['cors_manager'] = CORSManager( read_setting_from_env(settings, 'cors_allowed_origins', '')) # Routes config.include('yithlibraryserver.backups') config.include('yithlibraryserver.oauth2') config.include('yithlibraryserver.password') # Translation directories config.add_translation_dirs('yithlibraryserver:locale/') # the user package needs to be included before twitter, # facebook and google config.include('yithlibraryserver.user') config.include('yithlibraryserver.twitter') config.include('yithlibraryserver.facebook') config.include('yithlibraryserver.google') config.include('yithlibraryserver.persona') includeme(config) # Subscribers config.include('yithlibraryserver.subscribers') config.scan(ignore=[re.compile('.*tests.*').search, '.testing']) return config.make_wsgi_app()