forked from cernopendata/opendata.cern.ch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconftest.py
73 lines (58 loc) · 1.98 KB
/
conftest.py
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# -*- coding: utf-8 -*-
#
# This file is part of CERN Open Data Portal.
# Copyright (C) 2017 CERN.
#
# CERN Open Data Portal is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# CERN Open Data Portal is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with CERN Open Data Portal; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307, USA.
#
# In applying this license, CERN does not
# waive the privileges and immunities granted to it by virtue of its status
# as an Intergovernmental Organization or submit itself to any jurisdiction.
import os
import shutil
import tempfile
import pytest
from flask import Flask
from cernopendata.factory import create_api
@pytest.fixture(scope="session")
def instance_path():
"""Default instance path."""
path = tempfile.mkdtemp()
yield path
shutil.rmtree(path)
@pytest.fixture(scope="session")
def env_config(instance_path):
"""Default instance path."""
os.environ.update(
APP_INSTANCE_PATH=os.environ.get("INSTANCE_PATH", instance_path),
)
return os.environ
@pytest.fixture(scope="session")
def default_config():
"""Default configuration."""
return dict(
DEBUG_TB_ENABLED=False,
SQLALCHEMY_DATABASE_URI=os.environ.get(
"SQLALCHEMY_DATABASE_URI", "sqlite:///test.db"
),
TESTING=True,
)
@pytest.fixture(scope="session")
def app(env_config, default_config, instance_path):
"""Flask application fixture."""
app = create_api(**default_config)
with app.app_context():
yield app