summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-api/conftest.py
blob: 430262f1cb1d8f85fd16a0f4c8df2d31c99c24c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
"""
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 decorator(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        _request_ctx_stack.top.current_user = {'sub': 'test'}
        return f(*args, **kwargs)
    return decorated_function


@pytest.fixture
def client():
    """Returns a Flask API client to interact with."""

    # Disable authorization for test API endpoints
    from opendc import exts
    exts.requires_auth = decorator

    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