From 860f53a48be1b35b3b8361e1a1294f2c10f01011 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 27 2015 14:46:21 +0000 Subject: Add unit-tests for the add_group endpoint --- diff --git a/tests/test_progit_flask_ui_groups.py b/tests/test_progit_flask_ui_groups.py index c56385a..83fd232 100644 --- a/tests/test_progit_flask_ui_groups.py +++ b/tests/test_progit_flask_ui_groups.py @@ -56,6 +56,91 @@ class PagureFlaskGroupstests(tests.Modeltests): self.assertIn('

Groups

', output.data) self.assertIn('

0 groups.

', output.data) + def test_add_group(self): + """ Test the add_group endpoint. """ + output = self.app.get('/group/add') + self.assertEqual(output.status_code, 302) + + user = tests.FakeUser() + with tests.user_set(pagure.APP, user): + output = self.app.get('/group/add') + self.assertEqual(output.status_code, 403) + + user.username = 'pingou' + with tests.user_set(pagure.APP, user): + output = self.app.get('/group/add') + self.assertEqual(output.status_code, 200) + self.assertIn('

Create group

', output.data) + self.assertNotIn( + '', output.data) + + csrf_token = output.data.split( + 'name="csrf_token" type="hidden" value="')[1].split('">')[0] + + data = { + } + + # Insufficient input + output = self.app.post('/group/add', data=data) + self.assertEqual(output.status_code, 200) + self.assertIn('

Create group

', output.data) + self.assertEqual(output.data.count( + 'This field is required.'), 1) + + data = { + 'group_name': 'test group', + } + + # Missing CSRF + output = self.app.post('/group/add', data=data) + self.assertEqual(output.status_code, 200) + self.assertIn('

Create group

', output.data) + self.assertEqual(output.data.count( + 'This field is required.'), 0) + + data['csrf_token'] = csrf_token + + # All good + output = self.app.post( + '/group/add', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + '
  • User `pingou` added to the group ' + '`test group`.
  • ', output.data) + self.assertIn( + '
  • Group `test group` created.
  • ', + output.data) + self.assertIn('

    Groups

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

    1 groups.

    ', output.data) + + user = tests.FakeUser( + username='pingou', + groups=pagure.APP.config['ADMIN_GROUP']) + with tests.user_set(pagure.APP, user): + output = self.app.get('/group/add') + self.assertEqual(output.status_code, 200) + self.assertIn('

    Create group

    ', output.data) + self.assertIn('', output.data) + + data = { + 'group_name': 'test admin group', + 'group_type': 'admin', + 'csrf_token': csrf_token, + } + + # All good + output = self.app.post( + '/group/add', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + '
  • User `pingou` added to the group ' + '`test admin group`.
  • ', output.data) + self.assertIn( + '
  • Group `test admin group` created.
  • ', + output.data) + self.assertIn('

    Groups

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

    2 groups.

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