feat: add basic Grid
class, and /settings master view
This commit is contained in:
parent
2ad1ae9c49
commit
754e0989e4
18 changed files with 640 additions and 12 deletions
|
@ -8,6 +8,7 @@ from pyramid.httpexceptions import HTTPFound, HTTPForbidden, HTTPNotFound
|
|||
from wuttjamaican.conf import WuttaConfig
|
||||
from wuttaweb.views import base
|
||||
from wuttaweb.forms import Form
|
||||
from wuttaweb.grids import Grid
|
||||
|
||||
|
||||
class TestView(TestCase):
|
||||
|
@ -31,6 +32,10 @@ class TestView(TestCase):
|
|||
form = self.view.make_form()
|
||||
self.assertIsInstance(form, Form)
|
||||
|
||||
def test_make_grid(self):
|
||||
grid = self.view.make_grid()
|
||||
self.assertIsInstance(grid, Grid)
|
||||
|
||||
def test_notfound(self):
|
||||
error = self.view.notfound()
|
||||
self.assertIsInstance(error, HTTPNotFound)
|
||||
|
|
|
@ -215,6 +215,37 @@ class TestMasterView(WebTestCase):
|
|||
self.assertEqual(master.MasterView.get_template_prefix(), '/machines')
|
||||
del master.MasterView.model_class
|
||||
|
||||
def test_get_grid_key(self):
|
||||
|
||||
# error by default (since no model class)
|
||||
self.assertRaises(AttributeError, master.MasterView.get_grid_key)
|
||||
|
||||
# subclass may specify grid key
|
||||
master.MasterView.grid_key = 'widgets'
|
||||
self.assertEqual(master.MasterView.get_grid_key(), 'widgets')
|
||||
del master.MasterView.grid_key
|
||||
|
||||
# or it may specify route prefix
|
||||
master.MasterView.route_prefix = 'trucks'
|
||||
self.assertEqual(master.MasterView.get_grid_key(), 'trucks')
|
||||
del master.MasterView.route_prefix
|
||||
|
||||
# or it may specify *normalized* model name
|
||||
master.MasterView.model_name_normalized = 'blaster'
|
||||
self.assertEqual(master.MasterView.get_grid_key(), 'blasters')
|
||||
del master.MasterView.model_name_normalized
|
||||
|
||||
# or it may specify *standard* model name
|
||||
master.MasterView.model_name = 'Dinosaur'
|
||||
self.assertEqual(master.MasterView.get_grid_key(), 'dinosaurs')
|
||||
del master.MasterView.model_name
|
||||
|
||||
# or it may specify model class
|
||||
MyModel = MagicMock(__name__='Machine')
|
||||
master.MasterView.model_class = MyModel
|
||||
self.assertEqual(master.MasterView.get_grid_key(), 'machines')
|
||||
del master.MasterView.model_class
|
||||
|
||||
def test_get_config_title(self):
|
||||
|
||||
# error by default (since no model class)
|
||||
|
@ -296,11 +327,13 @@ class TestMasterView(WebTestCase):
|
|||
master.MasterView.model_name = 'AppInfo'
|
||||
master.MasterView.route_prefix = 'appinfo'
|
||||
master.MasterView.template_prefix = '/appinfo'
|
||||
master.MasterView.grid_columns = ['foo', 'bar']
|
||||
view = master.MasterView(self.request)
|
||||
response = view.index()
|
||||
del master.MasterView.model_name
|
||||
del master.MasterView.route_prefix
|
||||
del master.MasterView.template_prefix
|
||||
del master.MasterView.grid_columns
|
||||
|
||||
def test_configure(self):
|
||||
model = self.app.model
|
||||
|
|
|
@ -7,17 +7,39 @@ from wuttaweb.views import settings
|
|||
|
||||
class TestAppInfoView(WebTestCase):
|
||||
|
||||
def make_view(self):
|
||||
return settings.AppInfoView(self.request)
|
||||
|
||||
def test_index(self):
|
||||
# sanity/coverage check
|
||||
view = settings.AppInfoView(self.request)
|
||||
view = self.make_view()
|
||||
response = view.index()
|
||||
|
||||
def test_configure_get_simple_settings(self):
|
||||
# sanity/coverage check
|
||||
view = settings.AppInfoView(self.request)
|
||||
view = self.make_view()
|
||||
simple = view.configure_get_simple_settings()
|
||||
|
||||
def test_configure_get_context(self):
|
||||
# sanity/coverage check
|
||||
view = settings.AppInfoView(self.request)
|
||||
view = self.make_view()
|
||||
context = view.configure_get_context()
|
||||
|
||||
|
||||
class TestSettingView(WebTestCase):
|
||||
|
||||
def make_view(self):
|
||||
return settings.SettingView(self.request)
|
||||
|
||||
def test_index_get_grid_data(self):
|
||||
|
||||
# empty data by default
|
||||
view = self.make_view()
|
||||
data = view.index_get_grid_data(session=self.session)
|
||||
self.assertEqual(len(data), 0)
|
||||
|
||||
# unless we save some settings
|
||||
self.app.save_setting(self.session, 'foo', 'bar')
|
||||
self.session.commit()
|
||||
data = view.index_get_grid_data(session=self.session)
|
||||
self.assertEqual(len(data), 1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue