feat: add basic readonly web views for CORE members, products
also adds canonical web app db sessions for CORE also adds some methods to corepos handler, to get model / make session
This commit is contained in:
parent
b134e340ff
commit
05f428586b
22 changed files with 655 additions and 2 deletions
|
@ -1,5 +1,10 @@
|
|||
# -*- 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
|
||||
|
||||
|
@ -11,6 +16,51 @@ 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_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_get_office_url(self):
|
||||
handler = self.make_handler()
|
||||
|
||||
|
|
11
tests/web/test_init.py
Normal file
11
tests/web/test_init.py
Normal file
|
@ -0,0 +1,11 @@
|
|||
# -*- coding: utf-8; -*-
|
||||
|
||||
from wuttaweb.testing import WebTestCase
|
||||
|
||||
from wutta_corepos import web as mod
|
||||
|
||||
|
||||
class TestIncludeme(WebTestCase):
|
||||
|
||||
def test_coverage(self):
|
||||
return mod.includeme(self.pyramid_config)
|
39
tests/web/views/corepos/test_members.py
Normal file
39
tests/web/views/corepos/test_members.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
# -*- coding: utf-8; -*-
|
||||
|
||||
from sqlalchemy import orm
|
||||
|
||||
from corepos.db.office_op import model as op_model
|
||||
|
||||
from wuttaweb.testing import WebTestCase
|
||||
|
||||
from wutta_corepos.web.views.corepos import members as mod
|
||||
|
||||
|
||||
class TestProductView(WebTestCase):
|
||||
|
||||
def make_view(self):
|
||||
return mod.MemberView(self.request)
|
||||
|
||||
def test_includeme(self):
|
||||
return mod.includeme(self.pyramid_config)
|
||||
|
||||
def test_get_query(self):
|
||||
view = self.make_view()
|
||||
query = view.get_query()
|
||||
# TODO: not sure how to test the join other than doing data
|
||||
# setup and full runn-thru...and i'm feeling lazy
|
||||
self.assertIsInstance(query, orm.Query)
|
||||
|
||||
def test_configure_grid(self):
|
||||
view = self.make_view()
|
||||
grid = view.make_grid(model_class=view.model_class)
|
||||
self.assertNotIn('first_name', grid.renderers)
|
||||
view.configure_grid(grid)
|
||||
self.assertIn('first_name', grid.renderers)
|
||||
|
||||
def test_render_customer_attr(self):
|
||||
view = self.make_view()
|
||||
member = op_model.MemberInfo()
|
||||
customer = op_model.CustomerClassic(first_name="Fred")
|
||||
member.customers.append(customer)
|
||||
self.assertEqual(view.render_customer_attr(member, 'first_name', 'nope'), "Fred")
|
21
tests/web/views/corepos/test_products.py
Normal file
21
tests/web/views/corepos/test_products.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
# -*- coding: utf-8; -*-
|
||||
|
||||
from wuttaweb.testing import WebTestCase
|
||||
|
||||
from wutta_corepos.web.views.corepos import products as mod
|
||||
|
||||
|
||||
class TestProductView(WebTestCase):
|
||||
|
||||
def make_view(self):
|
||||
return mod.ProductView(self.request)
|
||||
|
||||
def test_includeme(self):
|
||||
return mod.includeme(self.pyramid_config)
|
||||
|
||||
def test_configure_grid(self):
|
||||
view = self.make_view()
|
||||
grid = view.make_grid(model_class=view.model_class)
|
||||
self.assertNotIn('upc', grid.linked_columns)
|
||||
view.configure_grid(grid)
|
||||
self.assertIn('upc', grid.linked_columns)
|
Loading…
Add table
Add a link
Reference in a new issue