File: conftest.py

package info (click to toggle)
pymssql 2.1.4%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 952 kB
  • sloc: python: 2,872; sh: 240; makefile: 148; ansic: 7
file content (66 lines) | stat: -rw-r--r-- 2,284 bytes parent folder | download | duplicates (2)
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
from os.path import dirname
import sys

# When using tox, it can accidentally pick up a {pymssql,_mssql}.so file in the
# root directory and then get ImportError because of incompatibility in Python
# versions. By removing the root directory from the sys.path, it forces tox to
# import the library from correct place in the tox virtualenv.
if '.tox' in sys.executable:
    root_dir = dirname(dirname(__file__))
    sys.path.remove(root_dir)

import decimal
import os
try:
    # Python 2
    from ConfigParser import ConfigParser
except ImportError:
    # Python 3
    from configparser import ConfigParser

import pytest

import tests.helpers as th
from .helpers import cfgpath, clear_db, get_app_lock, release_app_lock

_parser = ConfigParser({
    'server': 'localhost',
    'username': 'sa',
    'password': '',
    'database': 'tempdb',
    'port': '1433',
    'ipaddress': '127.0.0.1',
    'instance': '',
})

def pytest_addoption(parser):
    parser.addoption(
        "--pymssql-section",
        type="string",
        default=os.environ.get('PYMSSQL_TEST_CONFIG', 'DEFAULT'),
        help="The name of the section to use from tests.cfg"
    )

def pytest_configure(config):
    _parser.read(cfgpath)
    section = config.getoption('--pymssql-section')

    if not _parser.has_section(section) and section != 'DEFAULT':
        raise ValueError('the tests.cfg file does not have section: %s' % section)

    th.config.server = os.getenv('PYMSSQL_TEST_SERVER') or _parser.get(section, 'server')
    th.config.user = os.getenv('PYMSSQL_TEST_USERNAME') or _parser.get(section, 'username')
    th.config.password = os.getenv('PYMSSQL_TEST_PASSWORD') or _parser.get(section, 'password')
    th.config.database = os.getenv('PYMSSQL_TEST_DATABASE') or _parser.get(section, 'database')
    th.config.port = os.getenv('PYMSSQL_TEST_PORT') or _parser.get(section, 'port')
    th.config.ipaddress = os.getenv('PYMSSQL_TEST_IPADDRESS') or _parser.get(section, 'ipaddress')
    th.config.instance = os.getenv('PYMSSQL_TEST_INSTANCE') or _parser.get(section, 'instance')
    th.config.orig_decimal_prec = decimal.getcontext().prec
    th.mark_slow = pytest.mark.slow
    th.skip_test = pytest.skip

    get_app_lock()
    clear_db()

def pytest_unconfigure(config):
    release_app_lock()