From 550d2b59c10bc34e3c66fcbbaf261ba93569cdb1 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Mar 06 2015 10:12:36 +0000 Subject: Add unit-tests for the delete_repo endpoint --- diff --git a/tests/test_progit_flask_ui_repo.py b/tests/test_progit_flask_ui_repo.py index 3cde2c6..b002479 100644 --- a/tests/test_progit_flask_ui_repo.py +++ b/tests/test_progit_flask_ui_repo.py @@ -1033,6 +1033,104 @@ index 0000000..10d2e1c self.assertFalse( 'No content found in this repository' in output.data) + def test_delete_repo(self): + """ Test the delete_repo endpoint. """ + output = self.app.post('/foo/delete') + # User not logged in + self.assertEqual(output.status_code, 302) + + user = tests.FakeUser() + with tests.user_set(progit.APP, user): + output = self.app.post('/foo/delete') + # No project registered in the DB + self.assertEqual(output.status_code, 404) + + tests.create_projects(self.session) + + output = self.app.post('/test/delete') + # No git repo associated + self.assertEqual(output.status_code, 403) + + user = tests.FakeUser(username='pingou') + with tests.user_set(progit.APP, user): + output = self.app.post('/test/delete', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue( + '
  • Could not delete all the repos from the ' + 'system
  • ' in output.data) + self.assertTrue('

    Projects (1)

    ' in output.data) + self.assertTrue('

    Forks (0)

    ' in output.data) + + # Only git repo + item = progit.lib.model.Project( + user_id=1, # pingou + name='test', + description='test project #1', + ) + self.session.add(item) + self.session.commit() + tests.create_projects_git(tests.HERE) + output = self.app.post('/test/delete', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue( + '
  • Could not delete all the repos from the ' + 'system
  • ' in output.data) + self.assertTrue('

    Projects (1)

    ' in output.data) + self.assertTrue('

    Forks (0)

    ' in output.data) + + # Only git and doc repo + item = progit.lib.model.Project( + user_id=1, # pingou + name='test', + description='test project #1', + ) + self.session.add(item) + self.session.commit() + tests.create_projects_git(tests.HERE) + tests.create_projects_git(os.path.join(tests.HERE, 'docs')) + output = self.app.post('/test/delete', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue( + '
  • Could not delete all the repos from the ' + 'system
  • ' in output.data) + + # All repo there + item = progit.lib.model.Project( + user_id=1, # pingou + name='test', + description='test project #1', + ) + self.session.add(item) + self.session.commit() + tests.create_projects_git(tests.HERE) + tests.create_projects_git(os.path.join(tests.HERE, 'docs')) + tests.create_projects_git(os.path.join(tests.HERE, 'tickets')) + output = self.app.post('/test/delete', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue('

    Projects (1)

    ' in output.data) + self.assertTrue('

    Forks (0)

    ' in output.data) + + # Add a fork of a fork + item = progit.lib.model.Project( + user_id=1, # pingou + name='test3', + description='test project #3', + parent_id=1, + ) + self.session.add(item) + self.session.commit() + tests.add_content_git_repo( + os.path.join(tests.HERE, 'forks', 'pingou', 'test3.git')) + tests.add_content_git_repo( + os.path.join(tests.HERE, 'docs', 'pingou', 'test3.git')) + tests.add_content_git_repo( + os.path.join(tests.HERE, 'tickets', 'pingou', 'test3.git')) + + output = self.app.post( + '/fork/pingou/test3/delete', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertTrue('

    Projects (1)

    ' in output.data) + self.assertTrue('

    Forks (0)

    ' in output.data) if __name__ == '__main__':