First Working version. I can add table
This commit is contained in:
108
tests/test_dummydbengine.py
Normal file
108
tests/test_dummydbengine.py
Normal file
@@ -0,0 +1,108 @@
|
||||
import os.path
|
||||
|
||||
import pytest
|
||||
|
||||
from core.dbengine import DbException
|
||||
from core.settings_management import DummyDbEngine
|
||||
from core.settings_objects import BudgetTrackerSettings
|
||||
|
||||
settings_file = DummyDbEngine().db_path
|
||||
|
||||
FAKE_USER_ID = "FakeUserId"
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup_and_finalize():
|
||||
if os.path.exists(settings_file):
|
||||
os.remove(settings_file)
|
||||
|
||||
yield
|
||||
|
||||
if os.path.exists(settings_file):
|
||||
os.remove(settings_file)
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def engine():
|
||||
return DummyDbEngine()
|
||||
|
||||
|
||||
def test_i_can_save_and_load(engine):
|
||||
obj = BudgetTrackerSettings(
|
||||
spread_sheet="spread_sheet",
|
||||
col_row_num="row_number",
|
||||
col_project="project",
|
||||
col_owner="owner",
|
||||
col_capex="capex",
|
||||
col_details="details",
|
||||
col_supplier="supplier",
|
||||
col_budget_amt="budget",
|
||||
col_actual_amt="actual",
|
||||
col_forecast5_7_amt="forecast5_7",
|
||||
)
|
||||
|
||||
engine.save(FAKE_USER_ID, "MyEntry", obj)
|
||||
|
||||
res = engine.load(FAKE_USER_ID, "MyEntry")
|
||||
assert isinstance(res, BudgetTrackerSettings)
|
||||
|
||||
assert res.spread_sheet == obj.spread_sheet
|
||||
assert res.col_row_num == obj.col_row_num
|
||||
assert res.col_project == obj.col_project
|
||||
assert res.col_owner == obj.col_owner
|
||||
assert res.col_capex == obj.col_capex
|
||||
assert res.col_details == obj.col_details
|
||||
assert res.col_supplier == obj.col_supplier
|
||||
assert res.col_budget_amt == obj.col_budget_amt
|
||||
assert res.col_actual_amt == obj.col_actual_amt
|
||||
assert res.col_forecast5_7_amt == obj.col_forecast5_7_amt
|
||||
|
||||
|
||||
def test_i_can_save_and_modify(engine):
|
||||
obj = BudgetTrackerSettings()
|
||||
engine.save(FAKE_USER_ID, "MyEntry", obj)
|
||||
|
||||
obj = BudgetTrackerSettings(
|
||||
spread_sheet="modified_spread_sheet",
|
||||
col_row_num="modified_row_number",
|
||||
col_project="modified_project",
|
||||
col_owner="modified_owner",
|
||||
col_capex="modified_capex",
|
||||
col_details="modified_details",
|
||||
col_supplier="modified_supplier",
|
||||
col_budget_amt="modified_budget",
|
||||
col_actual_amt="modified_actual",
|
||||
col_forecast5_7_amt="forecast5_7",
|
||||
)
|
||||
engine.save(FAKE_USER_ID, "MyEntry", obj)
|
||||
|
||||
res = engine.load(FAKE_USER_ID, "MyEntry")
|
||||
|
||||
assert isinstance(res, BudgetTrackerSettings)
|
||||
assert res.spread_sheet == obj.spread_sheet
|
||||
assert res.col_row_num == obj.col_row_num
|
||||
assert res.col_project == obj.col_project
|
||||
assert res.col_owner == obj.col_owner
|
||||
assert res.col_capex == obj.col_capex
|
||||
assert res.col_details == obj.col_details
|
||||
assert res.col_supplier == obj.col_supplier
|
||||
assert res.col_budget_amt == obj.col_budget_amt
|
||||
assert res.col_actual_amt == obj.col_actual_amt
|
||||
assert res.col_forecast5_7_amt == obj.col_forecast5_7_amt
|
||||
|
||||
|
||||
def test_i_cannot_load_if_no_setting_file(engine):
|
||||
with pytest.raises(DbException) as ex:
|
||||
engine.load(FAKE_USER_ID, "MyEntry")
|
||||
|
||||
assert str(ex.value) == f"Entry 'MyEntry' is not found."
|
||||
|
||||
|
||||
def test_i_cannot_load_if_no_entry_found(engine):
|
||||
obj = BudgetTrackerSettings()
|
||||
engine.save(FAKE_USER_ID, "AnotherEntry", obj)
|
||||
|
||||
with pytest.raises(DbException) as ex:
|
||||
engine.load(FAKE_USER_ID, "MyEntry")
|
||||
|
||||
assert str(ex.value) == f"Entry 'MyEntry' is not found."
|
||||
Reference in New Issue
Block a user