Как проверить утверждение переменной внутри функции, используя TDD и Python Flask - PullRequest
0 голосов
/ 17 июня 2020

Я работаю над своим первым учебным проектом «сначала тесты» с нуля.

Я действительно не знаю, как проводить тесты для проверки значений переменных внутри функции, поэтому для строк, содержащих переменные token и user Мне не удалось найти способ сначала написать тест:

clientapp / __ init.py

from flask import Flask, request, url_for, session
import config as cfg
from logging import dictConfig
from authlib.integrations.flask_client import OAuth 

# flask app.logger
dictConfig{ ... }

# out of create_app() to be easy to import to tests
oauth = OAuth()

def create_app():
    app = Flask(__name__)
    app.secret_key = 'wtf'
    app.config['OP_CLIENT_ID'] = cfg.CLIENT_ID
    app.config['OP_CLIENT_SECRET'] = cfg.CLIENT_SECRET
    oauth.init_app(app)
    oauth.register('op', 
                     ... )


    @app.route('/protected-content', methods=['GET'])
    def protected_content():

        if 'profile' in session:
            return {},200
        else:
            return redirect(url_for('login'))


    @app.route('/login')
    def login():
        app.logger.info('/login requested')
        redirect_uri = cfg.REDIRECT_URIS[0]
        app.logger.debug('/login redirect_uri = %s' % redirect_uri)
        response = oauth.op.authorize_redirect(redirect_uri)
        app.logger.debug('/login authorize_redirect(redirect_uri) url = %s' % response.location)
        return response


    @app.route('/callback')
    def callback():
        try:    
            if not request.args['code']:
                return 400
            app.logger.info('/callback - received %s - %s' % (request.method, request.query_string))
            token = oauth.op.authorize_access_token()
            app.logger.debug('/callback - token = %s' % token)
            user = oauth.op.parse_id_token(token)
            app.logger.debug('/callback - user = %s' % user)
            session['user'] = user
            app.logger.debug('/callback - cookies = %s' % request.cookies)
            app.logger.debug('/callback - session = %s' % session)

            return redirect('/')

        except (MismatchingStateError, OAuthError) as error:
            app.logger.error(error)
            return {},400

    return app

Какую практику рекомендуется проверить это переменные?

...