diff --git a/tests/test_progit_flask_ui_repo.py b/tests/test_progit_flask_ui_repo.py index f5152b5..edcbaa2 100644 --- a/tests/test_progit_flask_ui_repo.py +++ b/tests/test_progit_flask_ui_repo.py @@ -205,6 +205,90 @@ class ProgitFlaskRepotests(tests.Modeltests): '
  • Description updated
  • ' in output.data) + def test_view_settings(self): + """ Test the view_settings endpoint. """ + output = self.app.get('/foo/settings') + self.assertEqual(output.status_code, 302) + + user = tests.FakeUser() + with tests.user_set(progit.APP, user): + output = self.app.get('/foo/settings') + self.assertEqual(output.status_code, 404) + + tests.create_projects(self.session) + tests.create_projects_git(tests.HERE) + + output = self.app.get('/test/settings') + self.assertEqual(output.status_code, 403) + + user.username = 'pingou' + with tests.user_set(progit.APP, user): + output = self.app.get('/test/settings', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue('
    ' in output.data) + self.assertTrue('

    Settings

    ' in output.data) + self.assertTrue( + '' in output.data) + # Both checkbox checked before + self.assertTrue( + '' in output.data) + self.assertTrue( + '' in output.data) + + csrf_token = output.data.split( + 'name="csrf_token" type="hidden" value="')[1].split('">')[0] + + data = {} + output = self.app.post( + '/test/settings', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue('
    ' in output.data) + self.assertTrue('

    Settings

    ' in output.data) + self.assertTrue( + '' in output.data) + + # Both checkbox are still checked + output = self.app.get('/test/settings', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue('
    ' in output.data) + self.assertTrue('

    Settings

    ' in output.data) + self.assertTrue( + '
      \n
    ' in output.data) + self.assertTrue( + '' in output.data) + self.assertTrue( + '' in output.data) + + data = {'csrf_token': csrf_token} + output = self.app.post( + '/test/settings', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue('
    ' in output.data) + self.assertTrue('

    test project #1

    ' in output.data) + self.assertTrue( + 'Overview - test - ProGit' in output.data) + self.assertTrue( + '
  • Edited successfully settings of ' + 'repo: test
  • ' in output.data) + + # Both checkbox are now un-checked + output = self.app.get('/test/settings', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue('
    ' in output.data) + self.assertTrue('

    Settings

    ' in output.data) + self.assertTrue( + '
      \n
    ' in output.data) + self.assertTrue( + '' in output.data) + self.assertTrue( + '' in output.data) + if __name__ == '__main__': SUITE = unittest.TestLoader().loadTestsFromTestCase(ProgitFlaskRepotests)