문제상황
해결방법
적용과정
db={
"user":"codakcodak",
"password":"test",
"host":"localhost",
"port":3306,
"database":"imageus_back"
}
test_db={
'user':'codakcodak_test',
'password':'test',
'host':'localhost',
'port':3306,
'database':'imageus_back_test'
}
JWT_SECRET_KEY="codakcodak"
DB_URL=f"mysql+mysqlconnector://{db['user']}:{db['password']}@{db['host']}:{db['port']}/{db['database']}?charset=utf8"
test_config={
'DB_URL':f"mysql+mysqlconnector://{test_db['user']}:{test_db['password']}@{test_db['host']}:{test_db['port']}/{test_db['database']}?charset=utf8",
'JWT_SECRET_KEY':"codakcodak"
}
*db,test_db로 크게 두 개로 환경변수를 나눔
def create_app(test_config=None):
app=Flask(__name__)
CORS(app)
if test_config is None:
#따로 넣어준 환경변수가 없다면 기본환경변수 적용
app.config.from_pyfile("config.py")
else:
#인자에 명시한 환경변수로 적용
app.config.update(test_config)
*테스트 환경이나 개발 환경에서 create_app에 test_config의 환경변수를 인자로 넣으면 넣어준 인자로 환경변수를 적용하여 app을 생성
def api():
app=create_app(test_config=config.test_config)
app.config['TEST']=True
api=app.test_client()
return api
*create_app생성시에 test_config라는 환경변수를 명시하여 적용