From 0b68dbd1985b99b2cd6d7813e31a85e40e647f8b Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Nov 17 2016 16:19:50 +0000 Subject: Add unit-tests for the git blame endpoint/UI --- diff --git a/tests/test_pagure_flask_ui_repo.py b/tests/test_pagure_flask_ui_repo.py index 45cf9b3..6d905d6 100644 --- a/tests/test_pagure_flask_ui_repo.py +++ b/tests/test_pagure_flask_ui_repo.py @@ -1602,6 +1602,114 @@ class PagureFlaskRepotests(tests.Modeltests): 'text/plain; charset=ascii') self.assertTrue('foo\n bar' in output.data) + def test_view_blame_file(self): + """ Test the view_blame_file endpoint. """ + output = self.app.get('/foo/blame/sources') + # No project registered in the DB + self.assertEqual(output.status_code, 404) + + tests.create_projects(self.session) + + output = self.app.get('/test/blame/sources') + # No git repo associated + self.assertEqual(output.status_code, 404) + + tests.create_projects_git(self.path, bare=True) + + output = self.app.get('/test/blame/sources') + self.assertEqual(output.status_code, 404) + + # Add some content to the git repo + tests.add_content_git_repo(os.path.join(self.path, 'test.git')) + tests.add_readme_git_repo(os.path.join(self.path, 'test.git')) + tests.add_binary_git_repo( + os.path.join(self.path, 'test.git'), 'test.jpg') + tests.add_binary_git_repo( + os.path.join(self.path, 'test.git'), 'test_binary') + + output = self.app.get('/test/blame/foofile') + self.assertEqual(output.status_code, 404) + + # View in a branch + output = self.app.get('/test/blame/sources') + self.assertEqual(output.status_code, 200) + self.assertIn(b'', output.data) + self.assertIn( + b'', output.data) + self.assertIn( + b'', output.data) + + # View what's supposed to be an image + output = self.app.get('/test/blame/test.jpg') + self.assertEqual(output.status_code, 400) + self.assertIn( + b'400 Bad Request', output.data) + self.assertIn( + b'

Binary files cannot be blamed

', output.data) + + # View folder + output = self.app.get('/test/blame/folder1') + self.assertEqual(output.status_code, 404) + self.assertIn("Page not found :'( - Pagure", output.data) + self.assertIn( + '

Page not found (404)

', output.data) + + # View by image name -- with a non-existant file + output = self.app.get('/test/blame/testfoo.jpg') + self.assertEqual(output.status_code, 404) + output = self.app.get('/test/blame/folder1/testfoo.jpg') + self.assertEqual(output.status_code, 404) + + # View file with a non-ascii name + tests.add_commit_git_repo( + os.path.join(self.path, 'test.git'), + ncommits=1, filename='Šource') + output = self.app.get('/test/blame/Šource') + self.assertEqual(output.status_code, 200) + self.assertEqual(output.headers['Content-Type'].lower(), + 'text/html; charset=utf-8') + self.assertIn('  Šource', output.data) + self.assertIn('
 bar
', output.data) + self.assertIn( + '', output.data) + self.assertTrue( + '' + in output.data + or + '' in output.data + ) + + # Add a fork of a fork + item = pagure.lib.model.Project( + user_id=1, # pingou + name='test3', + description='test project #3', + is_fork=True, + parent_id=1, + hook_token='aaabbbppp', + ) + self.session.add(item) + self.session.commit() + + tests.add_content_git_repo( + os.path.join(self.path, 'forks', 'pingou', 'test3.git')) + tests.add_readme_git_repo( + os.path.join(self.path, 'forks', 'pingou', 'test3.git')) + tests.add_commit_git_repo( + os.path.join(self.path, 'forks', 'pingou', 'test3.git'), + ncommits=10) + + output = self.app.get('/fork/pingou/test3/blame/sources') + self.assertEqual(output.status_code, 200) + self.assertIn('
Row 0
Row 0
', output.data) + self.assertIn( + '', output.data) + self.assertIn( + '', output.data) + def test_view_commit(self): """ Test the view_commit endpoint. """ output = self.app.get('/foo/c/bar')
 barRow 0