|
|
"""Tests for mongodb backend
|
|
|
|
|
|
Authors:
|
|
|
|
|
|
* Min RK
|
|
|
"""
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
# Copyright (C) 2011 The IPython Development Team
|
|
|
#
|
|
|
# Distributed under the terms of the BSD License. The full license is in
|
|
|
# the file COPYING, distributed as part of this software.
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
# Imports
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
|
import os
|
|
|
|
|
|
from unittest import TestCase
|
|
|
|
|
|
from nose import SkipTest
|
|
|
|
|
|
from pymongo import Connection
|
|
|
from IPython.parallel.controller.mongodb import MongoDB
|
|
|
|
|
|
from . import test_db
|
|
|
|
|
|
conn_kwargs = {}
|
|
|
if 'DB_IP' in os.environ:
|
|
|
conn_kwargs['host'] = os.environ['DB_IP']
|
|
|
if 'DBA_MONGODB_ADMIN_URI' in os.environ:
|
|
|
# On ShiningPanda, we need a username and password to connect. They are
|
|
|
# passed in a mongodb:// URI.
|
|
|
conn_kwargs['host'] = os.environ['DBA_MONGODB_ADMIN_URI']
|
|
|
if 'DB_PORT' in os.environ:
|
|
|
conn_kwargs['port'] = int(os.environ['DB_PORT'])
|
|
|
|
|
|
try:
|
|
|
c = Connection(**conn_kwargs)
|
|
|
except Exception:
|
|
|
c=None
|
|
|
|
|
|
class TestMongoBackend(test_db.TaskDBTest, TestCase):
|
|
|
"""MongoDB backend tests"""
|
|
|
|
|
|
def create_db(self):
|
|
|
try:
|
|
|
return MongoDB(database='iptestdb', _connection=c)
|
|
|
except Exception:
|
|
|
raise SkipTest("Couldn't connect to mongodb")
|
|
|
|
|
|
def teardown(self):
|
|
|
if c is not None:
|
|
|
c.drop_database('iptestdb')
|
|
|
|