Repository navigation
Expand file tree
/
Copy pathconftest.py
More file actions
63 lines (45 loc) · 1.42 KB
/
Copy pathconftest.py
File metadata and controls
63 lines (45 loc) · 1.42 KB
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
import os
import tempfile
import pytest
from task_manager import create_app, db
from task_manager.models import Projects, Tasks
@pytest.fixture(scope="function")
def app():
db_fd, db_path = tempfile.mkstemp(suffix=".sqlite3")
test_config = {
"TESTING": True,
"SQLALCHEMY_DATABASE_URI": f"sqlite:///{db_path}",
}
app = create_app(test_config)
with app.app_context():
db.create_all()
yield app
db.session.remove()
db.drop_all()
engine = db.engine
engine.dispose()
if hasattr(engine.pool, "dispose"):
engine.pool.dispose()
os.close(db_fd)
os.unlink(db_path)
@pytest.fixture
def client(app):
return app.test_client()
@pytest.fixture
def create_project():
def _create_project(name="Test Project", active=True):
project = Projects(project_name=name, active=active)
db.session.add(project)
db.session.commit()
return project
return _create_project
@pytest.fixture
def create_task(create_project):
def _create_task(task_desc="Sample Task", status=True, priority="Medium", project=None, due_date=None):
if not project:
project = create_project()
task = Tasks(project_id=project.project_id, task=task_desc, status=status, priority=priority, due_date=due_date)
db.session.add(task)
db.session.commit()
return task
return _create_task