46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
# -*- coding: utf-8; -*-
|
|
|
|
from wuttaweb.testing import WebTestCase
|
|
from wuttaweb.views import views as mod
|
|
from wuttaweb.views.users import UserView
|
|
|
|
|
|
class TestMasterViewView(WebTestCase):
|
|
|
|
def make_view(self):
|
|
return mod.MasterViewView(self.request)
|
|
|
|
def test_includeme(self):
|
|
self.pyramid_config.include("wuttaweb.views.views")
|
|
|
|
def test_get_grid_data(self):
|
|
view = self.make_view()
|
|
|
|
# empty by default, since nothing registered in test setup
|
|
data = view.get_grid_data()
|
|
self.assertIsInstance(data, list)
|
|
self.assertEqual(len(data), 0)
|
|
|
|
# so let's register one and try again
|
|
self.pyramid_config.add_wutta_master_view(UserView)
|
|
data = view.get_grid_data()
|
|
self.assertGreater(len(data), 0)
|
|
master = data[0]
|
|
self.assertIsInstance(master, dict)
|
|
self.assertEqual(master["model_title_plural"], "Users")
|
|
self.assertEqual(master["model_name"], "User")
|
|
self.assertEqual(master["url_prefix"], "/users")
|
|
|
|
def test_configure_grid(self):
|
|
self.pyramid_config.add_route("users", "/users/")
|
|
self.pyramid_config.add_wutta_master_view(UserView)
|
|
view = self.make_view()
|
|
|
|
# sanity / coverage check
|
|
grid = view.make_grid(
|
|
columns=["model_title_plural", "url_prefix"], data=view.get_grid_data()
|
|
)
|
|
view.configure_grid(grid)
|
|
|
|
# nb. must invoke this to exercise the url logic
|
|
grid.get_vue_context()
|