summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-api/conftest.py
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-10-25 14:53:54 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-10-25 14:53:54 +0200
commitaa9b32f8cd1467e9718959f400f6777e5d71737d (patch)
treeb88bbede15108c6855d7f94ded4c7054df186a72 /opendc-web/opendc-web-api/conftest.py
parenteb0e0a3bc557c05a70eead388797ab850ea87366 (diff)
parentb7a71e5b4aa77b41ef41deec2ace42b67a5a13a7 (diff)
merge: Integrate v2.1 progress into public repository
This pull request integrates the changes planned for the v2.1 release of OpenDC into the public Github repository in order to sync the progress of both repositories.
Diffstat (limited to 'opendc-web/opendc-web-api/conftest.py')
-rw-r--r--opendc-web/opendc-web-api/conftest.py38
1 files changed, 34 insertions, 4 deletions
diff --git a/opendc-web/opendc-web-api/conftest.py b/opendc-web/opendc-web-api/conftest.py
index 1f4831b8..958a5894 100644
--- a/opendc-web/opendc-web-api/conftest.py
+++ b/opendc-web/opendc-web-api/conftest.py
@@ -1,15 +1,45 @@
"""
Configuration file for all unit tests.
"""
+
+from functools import wraps
import pytest
+from flask import _request_ctx_stack, g
+from opendc.database import Database
+
+
+def requires_auth_mock(f):
+ @wraps(f)
+ def decorated_function(*args, **kwargs):
+ _request_ctx_stack.top.current_user = {'sub': 'test'}
+ return f(*args, **kwargs)
+ return decorated_function
+
-from main import FLASK_CORE_APP
+def requires_scope_mock(required_scope):
+ def decorator(f):
+ @wraps(f)
+ def decorated_function(*args, **kwargs):
+ return f(*args, **kwargs)
+ return decorated_function
+ return decorator
@pytest.fixture
def client():
"""Returns a Flask API client to interact with."""
- FLASK_CORE_APP.config['TESTING'] = True
- with FLASK_CORE_APP.test_client() as client:
- yield client
+ # Disable authorization for test API endpoints
+ from opendc import exts
+ exts.requires_auth = requires_auth_mock
+ exts.requires_scope = requires_scope_mock
+ exts.has_scope = lambda x: False
+
+ from app import create_app
+
+ app = create_app(testing=True)
+
+ with app.app_context():
+ g.db = Database()
+ with app.test_client() as client:
+ yield client