Tethik / flask-session-captcha

A captcha implemention for flask
MIT License
24 stars 8 forks source link

Object None not a Flask instance #48

Closed jrdiniz closed 6 months ago

jrdiniz commented 6 months ago

Hi,

I'm getting error when I instanced flask_session_captaca using app factory

extensions/captcha.py

from flask_session_captcha import FlaskSessionCaptcha

captcha = FlaskSessionCaptcha()

def init_app(app):
    captcha.init_app(app)

init.py

# Extensions
from app.extensions import configuration
from app.extensions import session
from app.extensions import captcha

def create_app() -> Flask:
    app = Flask(__name__)

    # Initialize Extensions
    configuration.init_app(app)
    session.init_app(app)
    captcha.init_app(app)

Error

  File "/home/juliano/apps/app-vivo-vshow/env/lib/python3.10/site-packages/flask_session_captcha/__init__.py", line 54, in __init__
    raise ex.NotFlaskApp(f"object {app} not a Flask instance.")
flask_session_captcha.exception.NotFlaskApp: object None not a Flask instance.

The constructor not accept None to create instance of the extension, but my object is Flask instance.

Flask-Session==0.6.0 flask-session-captcha==1.4.0 captcha==0.5.0

I'm change the constructor the instanciate works

    def __init__(self, app=None):
        self.app = app
        if app is not None:
            self.init_app(app)
Tethik commented 6 months ago

I've pushed a new version 1.4.1 which removes the exception being thrown. Let me know if it works for you :)

See https://github.com/Tethik/flask-session-captcha/commit/d4cb85b5ff6941a2af7e28ae54ced60742177938