35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
"""Общие фикстуры тестов. Соединения SQLite, открытые тестом, закрываются после него — в тестах нет
|
||
ResourceWarning «unclosed database» (hub-hygiene-d, решение 14; M-9/O-4 #4)."""
|
||
import pytest
|
||
|
||
from jira_hub.core import db, projects
|
||
from jira_hub.modules.jira import projects as jira_projects
|
||
|
||
|
||
@pytest.fixture
|
||
def open_db():
|
||
"""Фабрика соединений: open_db() — база в памяти, open_db(path) — файл. Все закрываются после теста."""
|
||
opened = []
|
||
|
||
def make(path=":memory:"):
|
||
conn = db.connect(path)
|
||
opened.append(conn)
|
||
return conn
|
||
|
||
yield make
|
||
for conn in opened:
|
||
conn.close()
|
||
|
||
|
||
@pytest.fixture
|
||
def add_project():
|
||
"""add_project(conn, label="AWPCA", name=None, board_id=4216, board_type="scrum") -> dict: завести проект."""
|
||
def make(conn, label="AWPCA", name=None, board_id=4216, board_type="scrum"):
|
||
if name is None:
|
||
name = jira_projects.LEGACY_NAME if label == jira_projects.LEGACY_LABEL else label
|
||
projects.create(conn, label, name, board_id)
|
||
if board_id is not None and board_type is not None:
|
||
jira_projects.record_board_types(conn, {str(board_id): board_type})
|
||
return projects.get(conn, label)
|
||
return make
|