代码如何引用用python和flask在配置文件中正确编写的SQLPATH?

代码如何引用用python和flask在配置文件中正确编写的SQLPATH?,python,unit-testing,flask,sqlalchemy,Python,Unit Testing,Flask,Sqlalchemy,我正在用pytest编写测试代码,以测试用python3编写的API。 问题是代码无法访问sql_路径,但在配置文件中正确设置了路径 我应该检查以下代码的哪一点?虽然错误 消息显示“KeyError”,已设置正确的密钥 *我已经尝试检查打印(sql\u path\u dict.get('get\u token')),结果返回“无” 错误消息 if token_type != TOKEN_TYPE_BEARER: return 2, client t

我正在用pytest编写测试代码,以测试用python3编写的API。 问题是代码无法访问sql_路径,但在配置文件中正确设置了路径

我应该检查以下代码的哪一点?虽然错误 消息显示“KeyError”,已设置正确的密钥

*我已经尝试检查
打印(sql\u path\u dict.get('get\u token'))
,结果返回“无”

错误消息

   if token_type != TOKEN_TYPE_BEARER:
            return 2, client

        token = secret


        print(sql_path_dict.get('get_token'))
>       sql_path = sql_path_dict['get_token']
E       KeyError: 'get_token'

../xxx/xxx/auth/auth.py:126: KeyError
配置文件

SQL_PATH = {
    'get_token': "../xxx/xxx/xxx/auth/auth.get_token.sql",
}
蟒蛇3

import base64
import datetime
from flask import abort
from flask import jsonify

import uuid
import logging
from flask_sqlalchemy import SQLAlchemy
sql_path_dict = {}
...
...

dba = None
logger = None


def init_app(app, db, log):
    global sql_path_dict
    sql_path_dict = app.config['SQL_PATH']
    app.config.setdefault('SQLALCHEMY_TRACK_MODIFICATIONS', False)
    db.init_app(app)

    global dba
    dba = db

    global logger
    logger = log

...
...
...


def access(request):
   request_check = 0
    client = "0"
    token_type, input_client_id, secret = get_secret(request, request_check)

    if token_type != TOKEN_TYPE_BEARER:
        return 2, client

    access_token = secret

    print(sql_path_dict.get('get_token'))
    sql_path = sql_path_dict['get_token']
...
...
...

什么是app.config?什么是应用程序?在测试中是否以相同的方式导入设置?如果看到一个测试因为没有db令牌而失败,则表明它可能太重,无法作为“单元测试”。你考虑过模拟整个数据库吗?什么是app.config?>app.config文件就是上面这篇文章的代码(配置文件)。什么是应用程序?>应用程序就是这个烧瓶应用程序。您在测试中是否以相同的方式导入设置?>对您考虑过模拟整个数据库吗?>这个问题的确切含义是什么?你是说mock可以创建整个数据库的临时数据,包括表模式和数据?如何能够模拟整个数据库?我还是个初学者,这个应用程序没有使用ORM。模拟数据库连接可能没有连接到真实的数据库。标签上写着单元测试,但是如果你不是在做这种测试,那就不用担心了。这个问题是关于全局变量在一个地方设置,但在另一个地方不可访问吗?这是单元测试代码的一部分。为什么你会这样认为“这个关于全局变量的问题是在一个地方设置的,而在另一个地方是不可访问的”?因为我没有假设。我很好奇这个问题背后的原因。这可能是这个问题的提示。