189 lines
6.3 KiB
Python
189 lines
6.3 KiB
Python
# -*- coding: utf-8; -*-
|
|
|
|
from unittest.mock import patch
|
|
|
|
import sqlalchemy as sa
|
|
from sqlalchemy import orm
|
|
|
|
from wuttjamaican.testing import ConfigTestCase
|
|
from wuttjamaican.exc import ConfigurationError
|
|
|
|
from wutta_corepos import handler as mod
|
|
|
|
|
|
class TestCoreposHandler(ConfigTestCase):
|
|
|
|
def make_handler(self):
|
|
return mod.CoreposHandler(self.config)
|
|
|
|
def test_get_model_office_op(self):
|
|
from corepos.db.office_op import model
|
|
|
|
handler = self.make_handler()
|
|
op_model = handler.get_model_office_op()
|
|
self.assertIs(op_model, model)
|
|
|
|
def test_get_model_office_trans(self):
|
|
from corepos.db.office_trans import model
|
|
|
|
handler = self.make_handler()
|
|
trans_model = handler.get_model_office_trans()
|
|
self.assertIs(trans_model, model)
|
|
|
|
def test_get_model_office_arch(self):
|
|
from corepos.db.office_arch import model
|
|
|
|
handler = self.make_handler()
|
|
arch_model = handler.get_model_office_arch()
|
|
self.assertIs(arch_model, model)
|
|
|
|
def test_get_model_lane_op(self):
|
|
from corepos.db.lane_op import model
|
|
|
|
handler = self.make_handler()
|
|
op_model = handler.get_model_lane_op()
|
|
self.assertIs(op_model, model)
|
|
|
|
def test_get_model_lane_trans(self):
|
|
from corepos.db.lane_trans import model
|
|
|
|
handler = self.make_handler()
|
|
trans_model = handler.get_model_lane_trans()
|
|
self.assertIs(trans_model, model)
|
|
|
|
def test_make_session_office_op(self):
|
|
handler = self.make_handler()
|
|
engine = sa.create_engine("sqlite://")
|
|
with patch.object(
|
|
self.config, "core_office_op_engines", create=True, new={"default": engine}
|
|
):
|
|
op_session = handler.make_session_office_op()
|
|
self.assertIsInstance(op_session, orm.Session)
|
|
self.assertIs(op_session.bind, engine)
|
|
|
|
def test_make_session_office_trans(self):
|
|
handler = self.make_handler()
|
|
engine = sa.create_engine("sqlite://")
|
|
with patch.object(
|
|
self.config,
|
|
"core_office_trans_engines",
|
|
create=True,
|
|
new={"default": engine},
|
|
):
|
|
trans_session = handler.make_session_office_trans()
|
|
self.assertIsInstance(trans_session, orm.Session)
|
|
self.assertIs(trans_session.bind, engine)
|
|
|
|
def test_make_session_office_arch(self):
|
|
handler = self.make_handler()
|
|
engine = sa.create_engine("sqlite://")
|
|
with patch.object(
|
|
self.config,
|
|
"core_office_arch_engines",
|
|
create=True,
|
|
new={"default": engine},
|
|
):
|
|
arch_session = handler.make_session_office_arch()
|
|
self.assertIsInstance(arch_session, orm.Session)
|
|
self.assertIs(arch_session.bind, engine)
|
|
|
|
def test_make_session_lane_op(self):
|
|
handler = self.make_handler()
|
|
engine = sa.create_engine("sqlite://")
|
|
with patch.object(
|
|
self.config, "core_lane_op_engines", create=True, new={"default": engine}
|
|
):
|
|
op_session = handler.make_session_lane_op()
|
|
self.assertIsInstance(op_session, orm.Session)
|
|
self.assertIs(op_session.bind, engine)
|
|
|
|
def test_make_session_lane_trans(self):
|
|
handler = self.make_handler()
|
|
engine = sa.create_engine("sqlite://")
|
|
with patch.object(
|
|
self.config, "core_lane_trans_engines", create=True, new={"default": engine}
|
|
):
|
|
trans_session = handler.make_session_lane_trans()
|
|
self.assertIsInstance(trans_session, orm.Session)
|
|
self.assertIs(trans_session.bind, engine)
|
|
|
|
def test_get_office_url(self):
|
|
handler = self.make_handler()
|
|
|
|
# null by default
|
|
self.assertIsNone(handler.get_office_url())
|
|
|
|
# error if required
|
|
self.assertRaises(ConfigurationError, handler.get_office_url, require=True)
|
|
|
|
# config can specify (traliing slash is stripped)
|
|
self.config.setdefault("corepos.office.url", "http://localhost/fannie/")
|
|
self.assertEqual(handler.get_office_url(), "http://localhost/fannie")
|
|
self.assertEqual(
|
|
handler.get_office_url(require=True), "http://localhost/fannie"
|
|
)
|
|
|
|
def test_get_office_department_url(self):
|
|
handler = self.make_handler()
|
|
|
|
# null
|
|
self.assertIsNone(handler.get_office_department_url(7))
|
|
|
|
# typical
|
|
self.config.setdefault("corepos.office.url", "http://localhost/fannie/")
|
|
self.assertEqual(
|
|
handler.get_office_department_url(7),
|
|
"http://localhost/fannie/item/departments/DepartmentEditor.php?did=7",
|
|
)
|
|
|
|
def test_get_office_employee_url(self):
|
|
handler = self.make_handler()
|
|
|
|
# null
|
|
self.assertIsNone(handler.get_office_employee_url(7))
|
|
|
|
# typical
|
|
self.config.setdefault("corepos.office.url", "http://localhost/fannie/")
|
|
self.assertEqual(
|
|
handler.get_office_employee_url(7),
|
|
"http://localhost/fannie/admin/Cashiers/CashierEditor.php?emp_no=7",
|
|
)
|
|
|
|
def test_get_office_likecode_url(self):
|
|
handler = self.make_handler()
|
|
|
|
# null
|
|
self.assertIsNone(handler.get_office_likecode_url(7))
|
|
|
|
# typical
|
|
self.config.setdefault("corepos.office.url", "http://localhost/fannie/")
|
|
self.assertEqual(
|
|
handler.get_office_likecode_url(7),
|
|
"http://localhost/fannie/item/likecodes/LikeCodeEditor.php?start=7",
|
|
)
|
|
|
|
def test_get_office_product_url(self):
|
|
handler = self.make_handler()
|
|
|
|
# null
|
|
self.assertIsNone(handler.get_office_product_url("07430500132"))
|
|
|
|
# typical
|
|
self.config.setdefault("corepos.office.url", "http://localhost/fannie/")
|
|
self.assertEqual(
|
|
handler.get_office_product_url("07430500132"),
|
|
"http://localhost/fannie/item/ItemEditorPage.php?searchupc=07430500132",
|
|
)
|
|
|
|
def test_get_office_vendor_url(self):
|
|
handler = self.make_handler()
|
|
|
|
# null
|
|
self.assertIsNone(handler.get_office_vendor_url(7))
|
|
|
|
# typical
|
|
self.config.setdefault("corepos.office.url", "http://localhost/fannie/")
|
|
self.assertEqual(
|
|
handler.get_office_vendor_url(7),
|
|
"http://localhost/fannie/item/vendors/VendorIndexPage.php?vid=7",
|
|
)
|