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
0
tests/grids/__init__.py
Normal file
0
tests/grids/__init__.py
Normal file
77
tests/grids/test_base.py
Normal file
77
tests/grids/test_base.py
Normal file
|
@ -0,0 +1,77 @@
|
|||
# -*- coding: utf-8; -*-
|
||||
|
||||
from unittest import TestCase
|
||||
|
||||
from pyramid import testing
|
||||
|
||||
from wuttjamaican.conf import WuttaConfig
|
||||
from wuttaweb.grids import base
|
||||
from wuttaweb.forms import FieldList
|
||||
|
||||
|
||||
class TestGrid(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.config = WuttaConfig(defaults={
|
||||
'wutta.web.menus.handler_spec': 'tests.utils:NullMenuHandler',
|
||||
})
|
||||
|
||||
self.request = testing.DummyRequest(wutta_config=self.config, use_oruga=False)
|
||||
|
||||
self.pyramid_config = testing.setUp(request=self.request, settings={
|
||||
'mako.directories': ['wuttaweb:templates'],
|
||||
})
|
||||
|
||||
def tearDown(self):
|
||||
testing.tearDown()
|
||||
|
||||
def make_grid(self, request=None, **kwargs):
|
||||
return base.Grid(request or self.request, **kwargs)
|
||||
|
||||
def test_constructor(self):
|
||||
|
||||
# empty
|
||||
grid = self.make_grid()
|
||||
self.assertIsNone(grid.key)
|
||||
self.assertIsNone(grid.columns)
|
||||
self.assertIsNone(grid.data)
|
||||
|
||||
# now with columns
|
||||
grid = self.make_grid(columns=['foo', 'bar'])
|
||||
self.assertIsInstance(grid.columns, FieldList)
|
||||
self.assertEqual(grid.columns, ['foo', 'bar'])
|
||||
|
||||
def test_vue_tagname(self):
|
||||
grid = self.make_grid()
|
||||
self.assertEqual(grid.vue_tagname, 'wutta-grid')
|
||||
|
||||
def test_vue_component(self):
|
||||
grid = self.make_grid()
|
||||
self.assertEqual(grid.vue_component, 'WuttaGrid')
|
||||
|
||||
def test_render_vue_tag(self):
|
||||
grid = self.make_grid(columns=['foo', 'bar'])
|
||||
html = grid.render_vue_tag()
|
||||
self.assertEqual(html, '<wutta-grid></wutta-grid>')
|
||||
|
||||
def test_render_vue_template(self):
|
||||
self.pyramid_config.include('pyramid_mako')
|
||||
self.pyramid_config.add_subscriber('wuttaweb.subscribers.before_render',
|
||||
'pyramid.events.BeforeRender')
|
||||
|
||||
grid = self.make_grid(columns=['foo', 'bar'])
|
||||
html = grid.render_vue_template()
|
||||
self.assertIn('<script type="text/x-template" id="wutta-grid-template">', html)
|
||||
|
||||
def test_get_vue_columns(self):
|
||||
|
||||
# error if no columns are set
|
||||
grid = self.make_grid()
|
||||
self.assertRaises(ValueError, grid.get_vue_columns)
|
||||
|
||||
# otherwise get back field/label dicts
|
||||
grid = self.make_grid(columns=['foo', 'bar'])
|
||||
columns = grid.get_vue_columns()
|
||||
first = columns[0]
|
||||
self.assertEqual(first['field'], 'foo')
|
||||
self.assertEqual(first['label'], 'Foo')
|
Loading…
Add table
Add a link
Reference in a new issue