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:
Lance Edgar 2025-01-12 20:04:19 -06:00
parent b134e340ff
commit 05f428586b
22 changed files with 655 additions and 2 deletions

11
tests/web/test_init.py Normal file
View 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)

View 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")

View 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)