import pytest

from flask import Flask, jsonify


@pytest.fixture
def app():
    app = Flask(__name__)
    app.config['SECRET_KEY'] = '42'

    @app.route('/')
    def index():
        return app.response_class('OK')

    @app.route('/ping')
    def ping():
        return jsonify(ping='pong')

    return app

import pytest

from textwrap import dedent
from flask import Flask, jsonify


pytest_plugins = 'pytester'


@pytest.fixture
def app():
    app = Flask(__name__)
    app.config['SECRET_KEY'] = '42'

    @app.route('/')
    def index():
        return app.response_class('OK')

    @app.route('/ping')
    def ping():
        return jsonify(ping='pong')

    return app


@pytest.fixture
def appdir(testdir):
    app_root = testdir.tmpdir
    test_root = app_root.mkdir('tests')

    def create_test_module(code, filename='test_app.py'):
        f = test_root.join(filename)
        f.write(dedent(code), ensure=True)
        return f

    testdir.create_test_module = create_test_module

    testdir.create_test_module('''
        import pytest

        from flask import Flask

        @pytest.fixture
        def app():
            app = Flask(__name__)
            return app
    ''', filename='conftest.py')
    return testdir

Add `appdir` fixture to simplify testing
Add `appdir` fixture to simplify testing

  import pytest
  
+ from textwrap import dedent
  from flask import Flask, jsonify
+ 
+ 
+ pytest_plugins = 'pytester'
  
  
  @pytest.fixture
  def app():
      app = Flask(__name__)
      app.config['SECRET_KEY'] = '42'
  
      @app.route('/')
      def index():
          return app.response_class('OK')
  
      @app.route('/ping')
      def ping():
          return jsonify(ping='pong')
  
      return app
  
+ 
+ @pytest.fixture
+ def appdir(testdir):
+     app_root = testdir.tmpdir
+     test_root = app_root.mkdir('tests')
+ 
+     def create_test_module(code, filename='test_app.py'):
+         f = test_root.join(filename)
+         f.write(dedent(code), ensure=True)
+         return f
+ 
+     testdir.create_test_module = create_test_module
+ 
+     testdir.create_test_module('''
+         import pytest
+ 
+         from flask import Flask
+ 
+         @pytest.fixture
+         def app():
+             app = Flask(__name__)
+             return app
+     ''', filename='conftest.py')
+     return testdir
+ 
Add `appdir` fixture to simplify testing
## Code Before:
import pytest

from flask import Flask, jsonify


@pytest.fixture
def app():
    app = Flask(__name__)
    app.config['SECRET_KEY'] = '42'

    @app.route('/')
    def index():
        return app.response_class('OK')

    @app.route('/ping')
    def ping():
        return jsonify(ping='pong')

    return app

## Instruction:
Add `appdir` fixture to simplify testing
## Code After:
import pytest

from textwrap import dedent
from flask import Flask, jsonify


pytest_plugins = 'pytester'


@pytest.fixture
def app():
    app = Flask(__name__)
    app.config['SECRET_KEY'] = '42'

    @app.route('/')
    def index():
        return app.response_class('OK')

    @app.route('/ping')
    def ping():
        return jsonify(ping='pong')

    return app


@pytest.fixture
def appdir(testdir):
    app_root = testdir.tmpdir
    test_root = app_root.mkdir('tests')

    def create_test_module(code, filename='test_app.py'):
        f = test_root.join(filename)
        f.write(dedent(code), ensure=True)
        return f

    testdir.create_test_module = create_test_module

    testdir.create_test_module('''
        import pytest

        from flask import Flask

        @pytest.fixture
        def app():
            app = Flask(__name__)
            return app
    ''', filename='conftest.py')
    return testdir
