def cli(ctx, conn_host, database, username, password, port, host, verbose): """loqusdb: manage a local variant count database.""" # configure root logger to print to STDERR loglevel = LEVELS.get(max(verbose, 1), "INFO") coloredlogs.install(level=loglevel) # mongo uri looks like: #mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] uri = None if username and password: uri = "{0}{1}:{2}@{3}:{4}/{5}".format(conn_host, username, password, host, port, database) if password: pwd = '******' else: pwd = None logger.info('uri={0}{1}:{2}@{3}:{4}/{5}'.format( conn_host, username, pwd, host, port, database)) adapter = MongoAdapter() adapter.connect(host=host, port=port, database=database, uri=uri) ctx.obj = {} ctx.obj['db'] = database ctx.obj['user'] = username ctx.obj['password'] = password ctx.obj['port'] = port ctx.obj['host'] = host ctx.obj['adapter'] = adapter
def cli(ctx, database, username, password, authdb, port, host, uri, verbose, config, test, genome_build): """loqusdb: manage a local variant count database.""" loglevel = "INFO" if verbose: loglevel = "DEBUG" coloredlogs.install(level=loglevel) LOG.info("Running loqusdb version %s", __version__) configs = {} if config: try: configs = yaml.safe_load(config) except yaml.YAMLError as err: LOG.warning(err) ctx.abort() uri = configs.get('uri') or uri if test: uri = "mongomock://" try: client = get_client( host=configs.get('host') or host, port=configs.get('port') or port, username=configs.get('username') or username, password=configs.get('password') or password, authdb=authdb or database or 'loqusdb', uri=uri, ) except DB_Error as err: LOG.warning(err) ctx.abort() database = configs.get('db_name') or database if not database: database = 'loqusdb' if uri: uri_info = uri_parser.parse_uri(uri) database = uri_info.get('database') adapter = MongoAdapter(client, db_name=database) genome_build = genome_build or configs.get('genome_build') or GRCH37 ctx.obj = {} ctx.obj['db'] = database ctx.obj['user'] = username ctx.obj['password'] = password ctx.obj['port'] = port ctx.obj['host'] = host ctx.obj['adapter'] = adapter ctx.obj['version'] = __version__ ctx.obj['genome_build'] = genome_build
def mongo_adapter(request, mongo_client): """Return a mongo adapter""" adapter = MongoAdapter() adapter.connect(database='test', client=mongo_client) return adapter
def test_init_app(mongo_client): app = FlaskApp() app.config['LOQUSDB_URI'] = "mongodb://localhost" adapter = MongoAdapter() adapter.init_app(app) assert True
def real_mongo_adapter(request, real_mongo_client): """Return a mongo adapter""" db_name = REAL_DATABASE adapter = MongoAdapter(real_mongo_client, db_name) return adapter
def mongo_adapter(request, mongo_client): """Return a mongo adapter""" db_name = TEST_DATABASE adapter = MongoAdapter(mongo_client, db_name) return adapter
def test_init_app(mongo_client): app = MockFlaskApp() adapter = MongoAdapter() adapter.init_app(app) assert adapter.db_name == app.config['MONGO_DBNAME']
def test_connect(mongo_client): adapter = MongoAdapter() db_name = 'test' adapter.connect(database=db_name, client=mongo_client) assert True
def test_connect_uri(mongo_client): adapter = MongoAdapter() uri = "{0}".format("mongodb://localhost") adapter.connect(uri=uri) assert True