Example #1
0
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()
Example #2
0
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
Example #3
0
    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)