diff --git a/tests/test_pagure_flask_ui_repo.py b/tests/test_pagure_flask_ui_repo.py index ffc6e0c..683137e 100644 --- a/tests/test_pagure_flask_ui_repo.py +++ b/tests/test_pagure_flask_ui_repo.py @@ -287,6 +287,94 @@ class PagureFlaskRepotests(tests.Modeltests): '\n User removed', output.data) @patch('pagure.ui.repo.admin_session_timedout') + def test_remove_group_project(self, ast): + """ Test the remove_group_project endpoint. """ + ast.return_value = False + + output = self.app.post('/foo/dropgroup/1') + self.assertEqual(output.status_code, 302) + + user = tests.FakeUser() + with tests.user_set(pagure.APP, user): + output = self.app.post('/foo/dropgroup/1') + self.assertEqual(output.status_code, 404) + + tests.create_projects(self.session) + + output = self.app.post('/test/dropgroup/1') + self.assertEqual(output.status_code, 403) + + ast.return_value = True + output = self.app.post('/test/dropgroup/1') + self.assertEqual(output.status_code, 302) + ast.return_value = False + + user.username = 'pingou' + with tests.user_set(pagure.APP, user): + tests.create_projects_git(tests.HERE) + output = self.app.post('/test/settings') + + csrf_token = output.data.split( + 'name="csrf_token" type="hidden" value="')[1].split('">')[0] + + data = {'csrf_token': csrf_token} + + output = self.app.post( + '/test/dropgroup/2', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + 'Settings - test - Pagure', output.data) + self.assertIn('

Settings for test

', output.data) + self.assertIn( + '\n ' + 'Group does not seem to be part of this project', + output.data) + + # Create the new group + msg = pagure.lib.add_group( + session=self.session, + group_name='testgrp', + group_type='user', + user='pingou', + is_admin=False, + blacklist=[], + ) + self.assertEqual(msg, 'User `pingou` added to the group `testgrp`.') + self.session.commit() + + repo = pagure.lib.get_project(self.session, 'test') + # Add the group to a project + msg = pagure.lib.add_group_to_project( + session=self.session, + project=repo, + new_group='testgrp', + user='pingou', + ) + self.session.commit() + self.assertEqual(msg, 'Group added') + + with tests.user_set(pagure.APP, user): + output = self.app.post('/test/dropgroup/1', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + 'Settings - test - Pagure', output.data) + self.assertIn('

Settings for test

', output.data) + self.assertNotIn( + '\n Group removed', + output.data) + + data = {'csrf_token': csrf_token} + output = self.app.post( + '/test/dropgroup/1', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + 'Settings - test - Pagure', output.data) + self.assertIn('

Settings for test

', output.data) + self.assertIn( + '\n Group removed', + output.data) + + @patch('pagure.ui.repo.admin_session_timedout') def test_update_project(self, ast): """ Test the update_project endpoint. """ ast.return_value = True