class TestPyMongo(object): def teardown(self): self.db.connection.drop_database("testdb") def test_app_immediately_bound(self): app = create_app() self.db = PyMongo(app, database="testdb") assert repr(self.db) == "<PyMongo connection=mongodb://localhost:27017>" def test_app_delayed_bound(self): app = create_app() self.db = PyMongo(database="testdb") assert repr(self.db) == "<PyMongo connection=None>" self.db.init_app(app) assert repr(self.db) == "<PyMongo connection=mongodb://localhost:27017>" def test_ensured_indices(self): app = create_app() self.db = PyMongo(database="testdb") Item = initialize_item_model(self.db) Entity = initialize_entity_model(self.db) self.db.init_app(app) assert 'title_1' in Item.query.index_information() assert 'count_-1' in Item.query.index_information() assert 'title_1' in Entity.query.index_information()
sys.path.insert(0, os.getcwd()) from views import generic from views.contacts import contacts from bson.json_util import dumps from extensions import RegexConverter from settings import Config from flask.ext.pymongo import PyMongo app = Flask(__name__) app.config.from_object(Config) mongo = PyMongo() mongo.init_app(app) # add regex for routing app.url_map.converters['regex'] = RegexConverter ##################### PUT @app.route('/<regex("[\w]*[Ss]"):class_name>', methods=['PUT', 'PATCH']) def put(class_name): if not class_name in Config.DOMAIN.keys(): abort(404) response = generic.put(class_name) return response ##################### POST
if '/test/' in request.url: Config.TESTING = True escfg = Config.ES_TEST except: pass # ElasticSearch es = ES(("http", escfg['host'], escfg['port'])) es.__dict__['index_name'] = escfg['name'] app.es = es app.config.from_object(Config) mongo = PyMongo() app.mongo = mongo mongo.init_app(app) # add regex for routing app.url_map.converters['regex'] = RegexConverter ##################### GET SEARCH @app.route( '/es', methods=['GET']) def es(): return generic.es() ##################### PUT @app.route( '/<regex("[\w]*[Ss]"):class_name>', methods=['PUT','PATCH']) @app.route( '/test/<regex("[\w]*[Ss]"):class_name>', methods=['PUT','PATCH']) def put(class_name): if not class_name in Config.DOMAIN.keys(): abort(404)