python - RuntimeError: trabajar fuera del contexto de la aplicación
mysql flask (1)
Flask tiene un contexto de aplicación , y parece que necesitarás hacer algo como:
def test_connection(self):
with app.app_context():
#test code
Es probable que también pueda app.app_context()
llamada app.app_context()
en un método de configuración de prueba. Espero que esto ayude.
app.py
from flask import Flask, render_template, request,jsonify,json,g
import mysql.connector
app = Flask(__name__)
**class TestMySQL():**
@app.before_request
def before_request():
try:
g.db = mysql.connector.connect(user=''root'', password=''root'', database=''mysql'')
except mysql.connector.errors.Error as err:
resp = jsonify({''status'': 500, ''error'': "Error:{}".format(err)})
resp.status_code = 500
return resp
@app.route(''/'')
def input_info(self):
try:
cursor = g.db.cursor()
cursor.execute (''CREATE TABLE IF NOT EXISTS testmysql (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(40) NOT NULL, /
email VARCHAR(40) NOT NULL UNIQUE)'')
cursor.close()
test.py
from app import *
class Test(unittest.TestCase):
def test_connection1(self):
with patch(''__main__.mysql.connector.connect'') as mock_mysql_connector_connect:
object=TestMySQL()
object.before_request() """Runtime error on calling this"
Estoy importando la aplicación en test.py para la prueba de unidad. Al llamar a la función '' before_request '' en test.py, está lanzando RuntimeError: trabajar fuera del contexto de la aplicación lo mismo ocurre al llamar '' input_info () ''