예제 #1
0
def main(global_config, **settings):
    """
        Main function : returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    initialize_sql(engine)
    auth_policy = SessionAuthenticationPolicy(callback=build_avatar)
    acl_policy = ACLAuthorizationPolicy()

    session_factory = session_factory_from_settings(settings)
    config = Configurator(settings=settings,
                          session_factory=session_factory,
                          authentication_policy=auth_policy,
                          authorization_policy=acl_policy,
                          root_factory=RootFactory
                          )
    config.add_static_view('static', 'crmbase:static', cache_max_age=3600)
    config.add_route('index', '/')

    # REST API
    ## using the four HTTP methods (POST, GET, PUT, DELETE),
    ## translating them in (add, get, update, delete)
    ## and the two following routes,
    ## we can get a very clean REST API
    config.add_route("users", "/users")
    config.add_route("user", "/users/{uid}")
    config.add_route("contacts", "/contacts")
    config.add_route("login", "/login")
    config.add_route("logout", "/logout")
    return config.make_wsgi_app()
예제 #2
0
def pytest_sessionstart():
    """
        Py.test setup
    """
    from py.test import config

    # Only run database setup on master (in case of xdist/multiproc mode)
    if not hasattr(config, 'slaveinput'):
        from crmbase.models import initialize_sql
        from crmbase.models.model import *
        from pyramid.config import Configurator
        from paste.deploy.loadwsgi import appconfig
        from sqlalchemy import engine_from_config
        import os

        root_path = os.path.dirname(__file__)
        settings = appconfig('config:' + os.path.join(root_path, "../../",
                                                                'test.ini'),
                                                        "crmbase")
        engine = engine_from_config(settings, prefix='sqlalchemy.')

        print 'Creating the tables on the test database %s' % engine

        config = Configurator(settings=settings)
        initialize_sql(engine, create=True)
예제 #3
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, crmbase)
    engine = engine_from_config(settings, 'sqlalchemy.')
    initialize_sql(engine)