diff --git a/tests/test_pagure_flask_ui_repo_delete_project.py b/tests/test_pagure_flask_ui_repo_delete_project.py index 95a61de..076ec67 100644 --- a/tests/test_pagure_flask_ui_repo_delete_project.py +++ b/tests/test_pagure_flask_ui_repo_delete_project.py @@ -134,10 +134,48 @@ class PagureFlaskDeleteRepotests(tests.Modeltests): @patch('pagure.lib.notify.send_email', MagicMock(return_value=True)) @patch('pagure.ui.repo.admin_session_timedout', MagicMock(return_value=False)) + def test_delete_fork_when_project_off_refreshing(self): + """ Test the delete_repo endpoint for a fork when only deleting main + project is forbidden but the fork is being refreshed in the backend + """ + project = pagure.get_authorized_project( + self.session, project_name='test', user='pingou') + self.assertIsNotNone(project) + # Ensure the project isn't read-only + project.read_only = True + self.session.add(project) + self.session.commit() + + user = tests.FakeUser(username='pingou') + with tests.user_set(pagure.APP, user): + output = self.app.post( + '/fork/pingou/test/delete', follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + '\n The ACLs of this project ' + 'are being refreshed in the backend this prevents the ' + 'project from being deleted. Please wait for this task to ' + 'finish before trying again. Thanks!', output.data) + + projects = pagure.lib.search_projects(self.session) + self.assertEqual(len(projects), 4) + + @patch.dict('pagure.APP.config', {'ENABLE_DEL_PROJECTS': False}) + @patch.dict('pagure.APP.config', {'ENABLE_DEL_FORKS': True}) + @patch('pagure.lib.notify.send_email', MagicMock(return_value=True)) + @patch('pagure.ui.repo.admin_session_timedout', + MagicMock(return_value=False)) def test_delete_fork_when_project_off(self): """ Test the delete_repo endpoint for a fork when only deleting main project is forbidden. """ + project = pagure.get_authorized_project( + self.session, project_name='test', user='pingou') + self.assertIsNotNone(project) + # Ensure the project isn't read-only + project.read_only = False + self.session.add(project) + self.session.commit() user = tests.FakeUser(username='pingou') with tests.user_set(pagure.APP, user): @@ -181,8 +219,10 @@ class PagureFlaskDeleteRepotests(tests.Modeltests): with tests.user_set(pagure.APP, user): output = self.app.get('/fork/pingou/test/settings') self.assertEqual(output.status_code, 200) - self.assertNotIn('
', output.data) + self.assertIn( + '  Delete the forks/pingou/test project', output.data)