Island: Add unit test infrastructure for testing resources

This commit is contained in:
VakarisZ 2021-07-12 15:59:36 +03:00
parent f8b6277a88
commit 2778b69dfb
1 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,32 @@
import flask_jwt_extended
import flask_restful
import pytest
from flask import Flask
import monkey_island.cc.app
import monkey_island.cc.resources.auth.auth
import monkey_island.cc.resources.island_mode
from monkey_island.cc.services.representations import output_json
# We can't scope to module, because monkeypatch is a function scoped decorator.
# Potential solutions: https://github.com/pytest-dev/pytest/issues/363#issuecomment-406536200 or
# https://stackoverflow.com/questions/53963822/python-monkeypatch-setattr-with-pytest-fixture-at-module-scope
@pytest.fixture(scope="function")
def flask_client(monkeypatch):
monkeypatch.setattr(flask_jwt_extended, "verify_jwt_in_request", lambda: None)
with mock_init_app().test_client() as client:
yield client
def mock_init_app():
app = Flask(__name__)
api = flask_restful.Api(app)
api.representations = {"application/json": output_json}
monkey_island.cc.app.init_app_url_rules(app)
monkey_island.cc.app.init_api_resources(api)
return app