title: RuntimeError: working outside of application context
body: <p><strong>app.py</strong></p>
  
  <pre><code>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()
  </code></pre>
  
  <p>test.py</p>
  
  <pre><code>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"  
  </code></pre>
  
  <p>I am importing <strong>app</strong> into <strong>test.py</strong> for unit testing.On calling  '<em>before_request</em>' function into test.py ,it is throwing RuntimeError: working outside of application context
  same is happening on calling '<em>input_info()</em>'</p>