diff --git a/tests/test_role.py b/tests/test_role.py index 7186f790969eee4cacdd097fc5c1d7590de62bca..6fe4125a63253c42195e8d41edebbde8305e29ba 100644 --- a/tests/test_role.py +++ b/tests/test_role.py @@ -398,6 +398,18 @@ class TestRoleCLI(UffdTestCase): self.assertEqual(role.is_default, True) self.assertEqual(set(self.get_user().groups), {self.get_access_group()}) + # Regression test for https://git.cccv.de/uffd/uffd/-/issues/156 + def test_update_without_description(self): + with self.app.test_request_context(): + role = Role.query.filter_by(name='test').first() + role.description = 'Test description' + db.session.commit() + result = self.app.test_cli_runner().invoke(args=['role', 'update', 'test', '--clear-groups']) + self.assertEqual(result.exit_code, 0) + with self.app.test_request_context(): + role = Role.query.filter_by(name='test').first() + self.assertEqual(role.description, 'Test description') + def test_delete(self): with self.app.test_request_context(): self.assertIsNotNone(Role.query.filter_by(name='test').first()) diff --git a/tests/test_user.py b/tests/test_user.py index d641eb2200328770130c775975717880c0eb1ebd..6a92ab6b72c99fb92f9b64cb75a31dc2534237ad 100644 --- a/tests/test_user.py +++ b/tests/test_user.py @@ -715,6 +715,13 @@ class TestGroupCLI(UffdTestCase): group = Group.query.filter_by(name='users').first() self.assertEqual(group.description, 'New description') + def test_update_without_description(self): + result = self.app.test_cli_runner().invoke(args=['group', 'update', 'users']) # Should not change anything + self.assertEqual(result.exit_code, 0) + with self.app.test_request_context(): + group = Group.query.filter_by(name='users').first() + self.assertEqual(group.description, 'Base group for all users') + def test_delete(self): with self.app.test_request_context(): self.assertIsNotNone(Group.query.filter_by(name='users').first()) diff --git a/uffd/role/cli.py b/uffd/role/cli.py index 54d69c350f8d32bfe9f6a1e768e0bf9f92b0ed88..6e94f5f1a78c3a1ada626d503c844746e12c56cb 100644 --- a/uffd/role/cli.py +++ b/uffd/role/cli.py @@ -101,7 +101,7 @@ def create(name, description, default, moderator_group, add_group, add_role): @role_cli.command(help='Update role attributes') @click.argument('name') -@click.option('--description', default='', help='Set description text.') +@click.option('--description', help='Set description text.') @click.option('--default/--no-default', default=None, help='Mark role as default or not. Non-service users are auto-added to default roles.') @click.option('--moderator-group', metavar='GROUP_NAME', help='Set moderator group.') @click.option('--no-moderator-group', is_flag=True, flag_value=True, default=False, help='Clear moderator group setting.') diff --git a/uffd/user/cli_group.py b/uffd/user/cli_group.py index 3627f0a0686d49c6393444eb0fe35637caec42b8..0dd80e539290132d93a7c400c67bd9e8564fe4a8 100644 --- a/uffd/user/cli_group.py +++ b/uffd/user/cli_group.py @@ -48,7 +48,7 @@ def create(name, description): @group_cli.command(help='Update group attributes') @click.argument('name') -@click.option('--description', default='', help='Set description text.') +@click.option('--description', help='Set description text.') def update(name, description): with current_app.test_request_context(): group = Group.query.filter_by(name=name).one_or_none()