def test_FilterMongoCollection_base(self): """ Just tests that we can build a filter collection object w/o err """ config = md.MongoConfig(user=None, password=None, database='local', host='localhost', port=27017) coll = config.db()['stamp_collection'] filter_coll = fm.FilterMongoCollection(coll, _filter={'foo': 'bar'}) self.assertEqual(filter_coll.name, coll.name) self.assertEqual(filter_coll.codec_options, coll.codec_options)
def test_MongoConfig_args(self): config = md.MongoConfig(user=None, password=None, database='local', host='localhost', port=27017) mongo_db = config.db() foobar_collection = mongo_db['foobar'] foobar_collection.remove() foobar_collection.insert({'test': 'object'}) self.assertEqual(foobar_collection.find_one({}, {'_id': 0}), {'test': 'object'}) foobar_collection.remove()
def test_MongoConfig_env(self): original_val = os.environ.get('foobar') os.environ['foobar'] = json.dumps({ 'database': 'local', 'host': 'localhost', 'port': 27017 }) config = md.MongoConfig(environ_var='foobar') mongo_db = config.db() foobar_collection = mongo_db['foobar'] foobar_collection.remove() foobar_collection.insert({'test': 'object'}) self.assertEqual(foobar_collection.find_one({}, {'_id': 0}), {'test': 'object'}) foobar_collection.remove() if original_val is None: del os.environ['foobar'] else: os.environ['foobar'] = original_val
def test_FilterMongoDB(self): config = md.MongoConfig(user=None, password=None, database='local', host='localhost', port=27017) mongo_db = config.db() filt = {'id': {'$gt': 420}} filter_mongo = fm.FilterMongoDB(mongo_db, _filter=filt) # Check this works like a regular database self.assertEqual(filter_mongo.base_object, mongo_db) self.assertEqual(filter_mongo.name, 'local') # Check we can access each collection 4 ways coll1 = filter_mongo.collection_1 coll2 = filter_mongo['collection_2'] coll3 = filter_mongo.create_collection('collection_3') coll4 = filter_mongo.get_collection('collection_4') for i, coll in enumerate([coll1, coll2, coll3, coll4], start=1): self.assertTrue(isinstance(coll, fm.FilterMongoCollection)) self.assertEqual(coll.name, 'collection_%s' % i) self.assertEqual(coll._filter, filt)
def get_local_mongo(): return md.MongoConfig(user=None, password=None, database='local', host='localhost', port=27017).db()