3
0
Fork 0

fix: fix behavior when editing Roles for a User

per proper UUID fields i guess
This commit is contained in:
Lance Edgar 2024-12-12 20:07:49 -06:00
parent e952e1031e
commit d72a2a15ec
4 changed files with 26 additions and 8 deletions

View file

@ -332,13 +332,21 @@ class TestRoleRefs(DataTestCase):
self.session.add(blokes)
self.session.commit()
# default values for widget includes all but: authed, anon
# with root access, default values include: admin, blokes
self.request.is_root = True
typ = mod.RoleRefs(self.request, session=self.session)
widget = typ.widget_maker()
self.assertEqual(len(widget.values), 2)
self.assertEqual(widget.values[0][1], "Administrator")
self.assertEqual(widget.values[1][1], "Blokes")
# without root, default values include: blokes
self.request.is_root = False
typ = mod.RoleRefs(self.request, session=self.session)
widget = typ.widget_maker()
self.assertEqual(len(widget.values), 1)
self.assertEqual(widget.values[0][1], "Blokes")
class TestPermissions(DataTestCase):

View file

@ -210,14 +210,17 @@ class TestRoleRefsWidget(WebTestCase):
# editable values list *excludes* admin (by default)
html = widget.serialize(field, {admin.uuid, blokes.uuid})
self.assertNotIn(str(admin.uuid), html)
self.assertIn(str(blokes.uuid), html)
self.assertNotIn(str(admin.uuid.hex), html)
self.assertIn(str(blokes.uuid.hex), html)
# but admin is included for root user
self.request.is_root = True
node = colander.SchemaNode(RoleRefs(self.request, session=self.session))
field = self.make_field(node)
widget = field.widget
html = widget.serialize(field, {admin.uuid, blokes.uuid})
self.assertIn(str(admin.uuid), html)
self.assertIn(str(blokes.uuid), html)
self.assertIn(str(admin.uuid.hex), html)
self.assertIn(str(blokes.uuid.hex), html)
class TestUserRefsWidget(WebTestCase):