Completed
Push — master ( 621df3...0c6719 )
by Ronert
12:32
created

cf_predict.MockRedisWrapper   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 6
Duplicated Lines 0 %
Metric Value
wmc 1
dl 0
loc 6
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A from_url() 0 3 1
1
import sys
2
from flask import Flask
3
from mockredis import MockRedis
4
from flask_redis import FlaskRedis
5
from .config import config
6
7
from .api import api_bp
8
9
__project__ = 'cf-predict'
10
__version__ = '0.0.0'
11
12
VERSION = "{0} v{1}".format(__project__, __version__)
13
14
PYTHON_VERSION = 3, 4
15
16
if sys.version_info < PYTHON_VERSION:  # pragma: no cover (manual test)
17
    sys.exit("Python {}.{}+ is required.".format(*PYTHON_VERSION))
18
19
20
class MockRedisWrapper(MockRedis):
21
    """A wrapper to add the `from_url` classmethod."""
22
23
    @classmethod
24
    def from_url(cls, *args, **kwargs):
25
        return cls()
26
27
28
def create_app(config_name):
29
    """Flask application factory."""
30
    app = Flask(__name__)
31
    app.config.from_object(config[config_name])
32
    config[config_name].init_app(app)
33
    if app.testing:
34
        redis_store = FlaskRedis.from_custom_provider(MockRedisWrapper)
35
    else:
36
        redis_store = FlaskRedis()
37
    redis_store.init_app(app)
38
    app.register_blueprint(api_bp)
39
    return app
40