MockRedisWrapper.from_url()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
1
import sys
2
import os
3
from flask import Flask
4
from mockredis import MockRedis
5
from flask_redis import FlaskRedis
6
from .config import config
7
8
from .api import api_bp
9
10
__project__ = 'cf-predict'
11
__version__ = '0.1.2'
12
13
VERSION = "{0} v{1}".format(__project__, __version__)
14
15
PYTHON_VERSION = 3, 4
16
17
if sys.version_info < PYTHON_VERSION:  # pragma: no cover (manual test)
18
    sys.exit("Python {}.{}+ is required.".format(*PYTHON_VERSION))
19
20
21
class MockRedisWrapper(MockRedis):
22
    """A wrapper to add the `from_url` classmethod."""
23
24
    @classmethod
25
    def from_url(cls, *args, **kwargs):
26
        return cls()
27
28
29
def create_app(config_name):
30
    """Flask application factory."""
31
    app = Flask(__name__)
32
    app.config.from_object(config[config_name])
33
    config[config_name].init_app(app)
34
    if app.testing:
35
        redis_store = FlaskRedis.from_custom_provider(MockRedisWrapper)
36
    else:
37
        redis_store = FlaskRedis()
38
    redis_store.init_app(app)
39
    app.register_blueprint(api_bp)
40
    return app
41
42
43
if __name__ == '__main__':  # pragma: no cover
44
    app = create_app(os.getenv('FLASK_CONFIG') or 'default')
45
    app.run(host=app.config['HOST'], port=app.config['PORT'])
46