3
0
Fork 0

feat: add basic Edit support for CRUD master view

This commit is contained in:
Lance Edgar 2024-08-10 21:07:38 -05:00
parent 9e1fc6e57d
commit 1a8fc8dd44
12 changed files with 640 additions and 51 deletions

View file

@ -65,3 +65,30 @@ class TestSettingView(WebTestCase):
view = self.make_view()
title = view.get_instance_title(setting)
self.assertEqual(title, 'foo')
def test_make_model_form(self):
view = self.make_view()
view.editing = True
form = view.make_model_form()
self.assertEqual(form.fields, ['name', 'value'])
self.assertIn('name', form)
self.assertIn('value', form)
dform = form.get_deform()
self.assertNotIn('name', dform)
self.assertIn('value', dform)
def test_persist(self):
model = self.app.model
view = self.make_view()
# setup
self.app.save_setting(self.session, 'foo', 'bar')
self.session.commit()
self.assertEqual(self.session.query(model.Setting).count(), 1)
# setting is updated
self.request.matchdict = {'name': 'foo'}
view.persist({'name': 'foo', 'value': 'frazzle'}, session=self.session)
self.session.commit()
self.assertEqual(self.session.query(model.Setting).count(), 1)
self.assertEqual(self.app.get_setting(self.session, 'foo'), 'frazzle')