diff --git a/tests/test_pagure_flask_ui_fork.py b/tests/test_pagure_flask_ui_fork.py index 17520f6..dab5c13 100644 --- a/tests/test_pagure_flask_ui_fork.py +++ b/tests/test_pagure_flask_ui_fork.py @@ -1841,6 +1841,88 @@ index 0000000..2a552bb '

Pull-Request has been merged by pingou

', output.data) + @patch('pagure.lib.notify.send_email') + def test_fork_edit_file(self, send_email): + """ Test the fork_edit file endpoint. """ + + send_email.return_value = True + + output = self.app.post('fork_edit/test/edit/master/f/sources') + self.assertEqual(output.status_code, 302) + + tests.create_projects(self.session) + for folder in ['docs', 'tickets', 'requests', 'repos']: + tests.create_projects_git( + os.path.join(tests.HERE, folder), bare=True) + + user = tests.FakeUser() + user.username = 'pingou' + with tests.user_set(pagure.APP, user): + output = self.app.post('fork_edit/test/edit/master/f/source') + self.assertEqual(output.status_code, 400) + + output = self.app.get('/new/') + self.assertEqual(output.status_code, 200) + self.assertIn('Create new Project', output.data) + + csrf_token = output.data.split( + 'name="csrf_token" type="hidden" value="')[1].split('">')[0] + + data = { + 'csrf_token': csrf_token, + } + + output = self.app.post('fork_edit/test/edit/master/f/sources', + data=data, follow_redirects=True) + self.assertEqual(output.status_code, 404) + + user = tests.FakeUser() + user.username = 'foo' + with tests.user_set(pagure.APP, user): + + data = { + 'csrf_token': csrf_token, + } + + output = self.app.post('fork_edit/test/edit/master/f/sources', + follow_redirects=True) + self.assertEqual(output.status_code, 400) + + tests.add_content_git_repo(os.path.join( + pagure.APP.config['GIT_FOLDER'], 'test.git')) + + tests.add_readme_git_repo(os.path.join( + pagure.APP.config['GIT_FOLDER'], 'test.git')) + + tests.add_binary_git_repo( + os.path.join( + pagure.APP.config['GIT_FOLDER'], 'test.git'), 'test.jpg') + + tests.add_binary_git_repo( + os.path.join( + pagure.APP.config['GIT_FOLDER'], 'test.git'), 'test_binary') + + output = self.app.post('fork_edit/test/edit/master/f/sources', + data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + self.assertIn( + '
  • ' + '  master' + '
  • ' + '  sources
  • ', + output.data) + self.assertIn( + '', + output.data) + self.assertIn( + '\n Repo "test" ' + 'cloned to "foo/test"', output.data) + + # View what's supposed to be an image + output = self.app.post('fork_edit/test/edit/master/f/test.jpg', + data=data, follow_redirects=True) + self.assertEqual(output.status_code, 400) + self.assertIn('

    Cannot edit binary files

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