diff --git a/tests/test_progit_flask_ui_groups.py b/tests/test_progit_flask_ui_groups.py index 83fd232..a8acd87 100644 --- a/tests/test_progit_flask_ui_groups.py +++ b/tests/test_progit_flask_ui_groups.py @@ -141,6 +141,69 @@ class PagureFlaskGroupstests(tests.Modeltests): self.assertIn('

Groups

', output.data) self.assertIn('

2 groups.

', output.data) + def test_group_delete(self): + """ Test the group_delete endpoint. """ + output = self.app.post('/group/foo/delete') + self.assertEqual(output.status_code, 302) + + user = tests.FakeUser() + with tests.user_set(pagure.APP, user): + output = self.app.post('/group/foo/delete', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + '

No groups have been created on this pagure instance ' + 'yet

', output.data) + self.assertIn('

0 groups.

', output.data) + + self.test_add_group() + + with tests.user_set(pagure.APP, user): + output = self.app.post('/group/foo/delete', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn('

1 groups.

', output.data) + + csrf_token = output.data.split( + 'name="csrf_token" type="hidden" value="')[1].split('">')[0] + + user.username = 'foo' + with tests.user_set(pagure.APP, user): + + data = { + 'csrf_token': csrf_token, + } + output = self.app.post( + '/group/bar/delete', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + '
  • No group `bar` found
  • ', output.data) + self.assertIn('

    1 groups.

    ', output.data) + + output = self.app.post( + '/group/test group/delete', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + '
  • You are not allowed to delete the group ' + 'test group
  • ', output.data) + self.assertIn('

    1 groups.

    ', output.data) + + user.username = 'bar' + with tests.user_set(pagure.APP, user): + + output = self.app.post( + '/group/test group/delete', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 404) + + user.username = 'pingou' + with tests.user_set(pagure.APP, user): + + output = self.app.post( + '/group/test group/delete', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + '
  • Group `test group` has been deleted' + '
  • ', output.data) + self.assertIn('

    0 groups.

    ', output.data) + if __name__ == '__main__': SUITE = unittest.TestLoader().loadTestsFromTestCase(