\n'
- ' file added\n', output_text)
+ " file added\n",
+ output_text,
+ )
# View inverse commits comparison
- output = self.app.get(
- '/test/c/%s..%s' % (c3.oid.hex, c1.oid.hex))
+ output = self.app.get("/test/c/%s..%s" % (c3.oid.hex, c1.oid.hex))
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- '
"
+ % (c3.oid.hex, c1.oid.hex),
+ output_text,
+ )
self.assertIn(
- '
\n' %
- (c3.oid.hex, c1.oid.hex),
- output_text)
+ '
\n'
+ % (c3.oid.hex, c1.oid.hex),
+ output_text,
+ )
self.assertIn(
- '
',
+ output_text,
+ )
self.assertIn(
- '
',
- output_text
+ 'title="View file as of 000000">Šource', output_text
)
self.assertIn(
'
\n'
- ' file removed\n', output_text)
+ " file removed\n",
+ output_text,
+ )
def compare_with_symlink(c3, c4):
# View comparison of commits with symlink
# we only test that the patch itself renders correctly,
# the rest of the logic is already tested in the other functions
- output = self.app.get('/test/c/%s..%s' % (c3.oid.hex, c4.oid.hex))
+ output = self.app.get("/test/c/%s..%s" % (c3.oid.hex, c4.oid.hex))
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
print(output_text)
self.assertIn(
- '
Diff from %s to %s - test\n - Pagure'
+ "
Diff from %s to %s - test\n - Pagure"
% (c3.oid.hex, c4.oid.hex),
- output_text)
- self.assertIn('
+ Source
', output_text)
+ output_text,
+ )
+ self.assertIn(
+ '
+ Source
',
+ output_text,
+ )
- output = self.app.get('/foo/bar')
+ output = self.app.get("/foo/bar")
# No project registered in the DB
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- output = self.app.get('/test/bar')
+ output = self.app.get("/test/bar")
# No git repo associated
self.assertEqual(output.status_code, 404)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- output = self.app.get('/test/bar')
+ output = self.app.get("/test/bar")
self.assertEqual(output.status_code, 404)
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
# Add one commit to git repo
tests.add_commit_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), ncommits=1)
- c1 = repo.revparse_single('HEAD')
+ os.path.join(self.path, "repos", "test.git"), ncommits=1
+ )
+ c1 = repo.revparse_single("HEAD")
# Add another commit to git repo
tests.add_commit_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), ncommits=1)
- c2 = repo.revparse_single('HEAD')
+ os.path.join(self.path, "repos", "test.git"), ncommits=1
+ )
+ c2 = repo.revparse_single("HEAD")
# Add one more commit to git repo
tests.add_commit_git_repo(
- os.path.join(self.path, 'repos', 'test.git'),
- ncommits=1, filename='Šource')
- c3 = repo.revparse_single('HEAD')
+ os.path.join(self.path, "repos", "test.git"),
+ ncommits=1,
+ filename="Šource",
+ )
+ c3 = repo.revparse_single("HEAD")
tests.add_commit_git_repo(
- os.path.join(self.path, 'repos', 'test.git'),
- ncommits=1, filename='Source-sl', symlink_to='Source'
+ os.path.join(self.path, "repos", "test.git"),
+ ncommits=1,
+ filename="Source-sl",
+ symlink_to="Source",
)
- c4 = repo.revparse_single('HEAD')
+ c4 = repo.revparse_single("HEAD")
compare_first_two(c1, c2)
compare_all(c1, c3)
@@ -2230,411 +2473,457 @@ class PagureFlaskRepotests(tests.Modeltests):
def test_view_file(self):
""" Test the view_file endpoint. """
- output = self.app.get('/foo/blob/foo/f/sources')
+ output = self.app.get("/foo/blob/foo/f/sources")
# No project registered in the DB
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- output = self.app.get('/test/blob/foo/f/sources')
+ output = self.app.get("/test/blob/foo/f/sources")
# No git repo associated
self.assertEqual(output.status_code, 404)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- output = self.app.get('/test/blob/foo/f/sources')
+ output = self.app.get("/test/blob/foo/f/sources")
self.assertEqual(output.status_code, 404)
# Add some content to the git repo
- tests.add_content_git_repo(os.path.join(self.path, 'repos',
- 'test.git'))
- tests.add_readme_git_repo(os.path.join(self.path, 'repos', 'test.git'))
+ tests.add_content_git_repo(
+ os.path.join(self.path, "repos", "test.git")
+ )
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test.jpg')
+ os.path.join(self.path, "repos", "test.git"), "test.jpg"
+ )
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test_binary')
+ os.path.join(self.path, "repos", "test.git"), "test_binary"
+ )
- output = self.app.get('/test/blob/master/foofile')
+ output = self.app.get("/test/blob/master/foofile")
self.assertEqual(output.status_code, 404)
# View in a branch
- output = self.app.get('/test/blob/master/f/sources')
+ output = self.app.get("/test/blob/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'
'
'foo\n bar',
- output_text)
+ output_text,
+ )
# Empty files should also be displayed
tests.add_content_to_git(
- os.path.join(self.path, 'repos', 'test.git'),
+ os.path.join(self.path, "repos", "test.git"),
filename="emptyfile.md",
- content="")
- output = self.app.get('/test/blob/master/f/emptyfile.md')
+ content="",
+ )
+ output = self.app.get("/test/blob/master/f/emptyfile.md")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'
Raw', output_text)
+ 'title="View as raw">Raw',
+ output_text,
+ )
self.assertIn(
- '
\n'
- ' \n
', output_text)
+ '
\n' " \n
", output_text
+ )
# View what's supposed to be an image
- output = self.app.get('/test/blob/master/f/test.jpg')
+ output = self.app.get("/test/blob/master/f/test.jpg")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- 'Binary files cannot be rendered.
', output_text)
+ self.assertIn("Binary files cannot be rendered.
", output_text)
self.assertIn(
'
view the raw version',
- output_text)
+ output_text,
+ )
# View by commit id
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
- output = self.app.get('/test/blob/%s/f/test.jpg' % commit.oid.hex)
+ output = self.app.get("/test/blob/%s/f/test.jpg" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- 'Binary files cannot be rendered.
', output_text)
+ self.assertIn("Binary files cannot be rendered.
", output_text)
self.assertIn('/f/test.jpg">view the raw version', output_text)
# View by image name -- somehow we support this
- output = self.app.get('/test/blob/sources/f/test.jpg')
+ output = self.app.get("/test/blob/sources/f/test.jpg")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- 'Binary files cannot be rendered.
', output_text)
+ self.assertIn("Binary files cannot be rendered.
", output_text)
self.assertIn('/f/test.jpg">view the raw version', output_text)
# View binary file
- output = self.app.get('/test/blob/sources/f/test_binary')
+ output = self.app.get("/test/blob/sources/f/test_binary")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn('/f/test_binary">view the raw version', output_text)
- self.assertIn(
- 'Binary files cannot be rendered.
', output_text)
+ self.assertIn("Binary files cannot be rendered.
", output_text)
# View folder
- output = self.app.get('/test/blob/master/f/folder1')
+ output = self.app.get("/test/blob/master/f/folder1")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'\n '
'\n '
- ' folder1\n ',
- output_text)
- self.assertIn('Tree - test - Pagure', output_text)
+ " folder1\n ",
+ output_text,
+ )
+ self.assertIn("Tree - test - Pagure", output_text)
self.assertIn(
- '', output_text)
+ '', output_text
+ )
# Verify the nav links correctly when viewing a nested folder/file.
- output = self.app.get('/test/blob/master/f/folder1/folder2/file')
+ output = self.app.get("/test/blob/master/f/folder1/folder2/file")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- ''
- '\n folder2\n'
- ' ', output_text)
+ ''
+ '\n folder2\n'
+ " ",
+ output_text,
+ )
# View by image name -- with a non-existant file
- output = self.app.get('/test/blob/sources/f/testfoo.jpg')
+ output = self.app.get("/test/blob/sources/f/testfoo.jpg")
self.assertEqual(output.status_code, 404)
- output = self.app.get('/test/blob/master/f/folder1/testfoo.jpg')
+ output = self.app.get("/test/blob/master/f/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, 'repos', 'test.git'),
- ncommits=1, filename='Šource')
- output = self.app.get('/test/blob/master/f/Šource')
+ os.path.join(self.path, "repos", "test.git"),
+ ncommits=1,
+ filename="Šource",
+ )
+ output = self.app.get("/test/blob/master/f/Šource")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertEqual(output.headers['Content-Type'].lower(),
- 'text/html; charset=utf-8')
- self.assertIn(
- ' Šource',
- output_text)
+ self.assertEqual(
+ output.headers["Content-Type"].lower(), "text/html; charset=utf-8"
+ )
+ self.assertIn(" Šource", output_text)
self.assertIn(
''
'Row 0\n',
- output_text
+ output_text,
)
# Add a fork of a fork
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test3',
- description='test project #3',
+ name="test3",
+ description="test project #3",
is_fork=True,
parent_id=1,
- hook_token='aaabbbppp',
+ hook_token="aaabbbppp",
)
self.session.add(item)
self.session.commit()
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'))
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git")
+ )
tests.add_readme_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'))
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git")
+ )
tests.add_commit_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'),
- ncommits=10)
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git"),
+ ncommits=10,
+ )
# Verify the nav links correctly when viewing a file/folder in a fork.
output = self.app.get(
- '/fork/pingou/test3/blob/master/f/folder1/folder2/file')
+ "/fork/pingou/test3/blob/master/f/folder1/folder2/file"
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
''
''
'\n '
- ' folder2\n ', output_text)
-
+ " folder2\n ",
+ output_text,
+ )
- output = self.app.get('/fork/pingou/test3/blob/master/f/sources')
+ output = self.app.get("/fork/pingou/test3/blob/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'
'
'foo\n barRow 0\n'
- 'Row 1\nRow 2\nRow 3\nRow 4\nRow 5\nRow 6\nRow 7\nRow 8\n'
- 'Row 9\n', output_text)
+ "Row 1\nRow 2\nRow 3\nRow 4\nRow 5\nRow 6\nRow 7\nRow 8\n"
+ "Row 9\n",
+ output_text,
+ )
@patch(
- 'pagure.lib.encoding_utils.decode',
- MagicMock(side_effect=pagure.exceptions.PagureException))
+ "pagure.lib.encoding_utils.decode",
+ MagicMock(side_effect=pagure.exceptions.PagureException),
+ )
def test_view_file_with_wrong_encoding(self):
""" Test the view_file endpoint. """
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
# Add some content to the git repo
- tests.add_content_git_repo(os.path.join(self.path, 'repos',
- 'test.git'))
- tests.add_readme_git_repo(os.path.join(self.path, 'repos', 'test.git'))
+ tests.add_content_git_repo(
+ os.path.join(self.path, "repos", "test.git")
+ )
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test.jpg')
+ os.path.join(self.path, "repos", "test.git"), "test.jpg"
+ )
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test_binary')
+ os.path.join(self.path, "repos", "test.git"), "test_binary"
+ )
# View file
- output = self.app.get('/test/blob/master/f/sources')
+ output = self.app.get("/test/blob/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('Binary files cannot be rendered.
', output_text)
+ self.assertIn("Binary files cannot be rendered.
", output_text)
def test_view_raw_file(self):
""" Test the view_raw_file endpoint. """
- output = self.app.get('/foo/raw/foo/sources')
+ output = self.app.get("/foo/raw/foo/sources")
# No project registered in the DB
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- output = self.app.get('/test/raw/foo/sources')
+ output = self.app.get("/test/raw/foo/sources")
# No git repo associated
self.assertEqual(output.status_code, 404)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- output = self.app.get('/test/raw/foo/sources')
+ output = self.app.get("/test/raw/foo/sources")
self.assertEqual(output.status_code, 404)
# Add some content to the git repo
- tests.add_readme_git_repo(os.path.join(self.path, 'repos', 'test.git'))
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
# View first commit
- output = self.app.get('/test/raw/master')
+ output = self.app.get("/test/raw/master")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertEqual(output.headers['Content-Type'].lower(),
- 'text/plain; charset=ascii')
- self.assertIn(':Author: Pierre-Yves Chibon', output_text)
+ self.assertEqual(
+ output.headers["Content-Type"].lower(), "text/plain; charset=ascii"
+ )
+ self.assertIn(":Author: Pierre-Yves Chibon", output_text)
# Add some more content to the repo
- tests.add_content_git_repo(os.path.join(self.path, 'repos',
- 'test.git'))
+ tests.add_content_git_repo(
+ os.path.join(self.path, "repos", "test.git")
+ )
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test.jpg')
+ os.path.join(self.path, "repos", "test.git"), "test.jpg"
+ )
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test_binary')
+ os.path.join(self.path, "repos", "test.git"), "test_binary"
+ )
- output = self.app.get('/test/raw/master/f/foofile')
+ output = self.app.get("/test/raw/master/f/foofile")
self.assertEqual(output.status_code, 404)
# View in a branch
- output = self.app.get('/test/raw/master/f/sources')
- self.assertEqual(output.headers['Content-Type'].lower(),
- 'text/plain; charset=ascii')
+ output = self.app.get("/test/raw/master/f/sources")
+ self.assertEqual(
+ output.headers["Content-Type"].lower(), "text/plain; charset=ascii"
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('foo\n bar', output_text)
+ self.assertIn("foo\n bar", output_text)
# View what's supposed to be an image
- output = self.app.get('/test/raw/master/f/test.jpg')
+ output = self.app.get("/test/raw/master/f/test.jpg")
self.assertEqual(output.status_code, 200)
output_text = output.get_data()
- self.assertTrue(output_text.startswith(b'\x00\x00\x01\x00'))
+ self.assertTrue(output_text.startswith(b"\x00\x00\x01\x00"))
# View by commit id
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
- output = self.app.get('/test/raw/%s/f/test.jpg' % commit.oid.hex)
+ output = self.app.get("/test/raw/%s/f/test.jpg" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data()
- self.assertTrue(output_text.startswith(b'\x00\x00\x01\x00'))
+ self.assertTrue(output_text.startswith(b"\x00\x00\x01\x00"))
# View by image name -- somehow we support this
- output = self.app.get('/test/raw/sources/f/test.jpg')
+ output = self.app.get("/test/raw/sources/f/test.jpg")
self.assertEqual(output.status_code, 200)
output_text = output.get_data()
- self.assertTrue(output_text.startswith(b'\x00\x00\x01\x00'))
+ self.assertTrue(output_text.startswith(b"\x00\x00\x01\x00"))
# View binary file
- output = self.app.get('/test/raw/sources/f/test_binary')
+ output = self.app.get("/test/raw/sources/f/test_binary")
self.assertEqual(output.status_code, 200)
output_text = output.get_data()
- self.assertEqual(output.headers['Content-Type'].lower(),
- 'application/octet-stream')
- self.assertTrue(output_text.startswith(b'\x00\x00\x01\x00'))
+ self.assertEqual(
+ output.headers["Content-Type"].lower(), "application/octet-stream"
+ )
+ self.assertTrue(output_text.startswith(b"\x00\x00\x01\x00"))
# View folder
- output = self.app.get('/test/raw/master/f/folder1')
+ output = self.app.get("/test/raw/master/f/folder1")
self.assertEqual(output.status_code, 404)
# View by image name -- with a non-existant file
- output = self.app.get('/test/raw/sources/f/testfoo.jpg')
+ output = self.app.get("/test/raw/sources/f/testfoo.jpg")
self.assertEqual(output.status_code, 404)
- output = self.app.get('/test/raw/master/f/folder1/testfoo.jpg')
+ output = self.app.get("/test/raw/master/f/folder1/testfoo.jpg")
self.assertEqual(output.status_code, 404)
- output = self.app.get('/test/raw/master/f/')
+ output = self.app.get("/test/raw/master/f/")
self.assertEqual(output.status_code, 404)
- output = self.app.get('/test/raw/master')
+ output = self.app.get("/test/raw/master")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertEqual(output.headers['Content-Type'].lower(),
- 'text/plain; charset=ascii')
- self.assertTrue(output_text.startswith(
- 'diff --git a/test_binary b/test_binary\n'))
+ self.assertEqual(
+ output.headers["Content-Type"].lower(), "text/plain; charset=ascii"
+ )
+ self.assertTrue(
+ output_text.startswith("diff --git a/test_binary b/test_binary\n")
+ )
- output = self.app.get('/test/raw/%s' % commit.oid.hex)
+ output = self.app.get("/test/raw/%s" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertTrue(output_text.startswith(
- 'diff --git a/test_binary b/test_binary\n'))
+ self.assertTrue(
+ output_text.startswith("diff --git a/test_binary b/test_binary\n")
+ )
# Add a fork of a fork
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test3',
- description='test project #3',
+ name="test3",
+ description="test project #3",
is_fork=True,
parent_id=1,
- hook_token='aaabbbqqq',
+ hook_token="aaabbbqqq",
)
self.session.add(item)
self.session.commit()
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'))
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git")
+ )
tests.add_readme_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'))
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git")
+ )
tests.add_commit_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'),
- ncommits=10)
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git"),
+ ncommits=10,
+ )
- output = self.app.get('/fork/pingou/test3/raw/master/f/sources')
+ output = self.app.get("/fork/pingou/test3/raw/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertEqual(output.headers['Content-Type'].lower(),
- 'text/plain; charset=ascii')
- self.assertIn('foo\n bar', output_text)
+ self.assertEqual(
+ output.headers["Content-Type"].lower(), "text/plain; charset=ascii"
+ )
+ self.assertIn("foo\n bar", output_text)
def test_view_blame_file(self):
""" Test the view_blame_file endpoint. """
- output = self.app.get('/foo/blame/sources')
+ 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')
+ output = self.app.get("/test/blame/sources")
# No git repo associated
self.assertEqual(output.status_code, 404)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- output = self.app.get('/test/blame/sources')
+ 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, 'repos', 'test.git'))
+ os.path.join(self.path, "repos", "test.git")
+ )
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'test.git'),
- branch='feature')
- tests.add_readme_git_repo(os.path.join(self.path, 'repos', 'test.git'))
+ os.path.join(self.path, "repos", "test.git"), branch="feature"
+ )
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test.jpg')
+ os.path.join(self.path, "repos", "test.git"), "test.jpg"
+ )
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test_binary')
+ os.path.join(self.path, "repos", "test.git"), "test_binary"
+ )
- output = self.app.get('/test/blame/foofile')
+ output = self.app.get("/test/blame/foofile")
self.assertEqual(output.status_code, 404)
regex = re.compile(r'>(\w+)\n
')
# View in master branch
- output = self.app.get('/test/blame/sources')
+ output = self.app.get("/test/blame/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn('', output_text)
self.assertIn(
' | ', output_text)
+ 'data-line-number="1">',
+ output_text,
+ )
self.assertIn(
- ' bar
| ', output_text)
+ ' bar
| ', output_text
+ )
data = regex.findall(output_text)
self.assertEqual(len(data), 2)
# View for a commit
repo_obj = pygit2.Repository(
- os.path.join(self.path, 'repos', 'test.git'))
+ os.path.join(self.path, "repos", "test.git")
+ )
commit = repo_obj[repo_obj.head.target]
parent = commit.parents[0].oid.hex
- output = self.app.get('/test/blame/sources?identifier=%s' % parent)
+ output = self.app.get("/test/blame/sources?identifier=%s" % parent)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn('', output_text)
self.assertIn(
' | ', output_text)
+ 'data-line-number="1">',
+ output_text,
+ )
self.assertIn(
- ' bar
| ', output_text)
+ ' bar
| ', output_text
+ )
data1 = regex.findall(output_text)
self.assertEqual(len(data1), 2)
self.assertEqual(data, data1)
# View in feature branch
- output = self.app.get('/test/blame/sources?identifier=feature')
+ output = self.app.get("/test/blame/sources?identifier=feature")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn('', output_text)
self.assertIn(
' | ', output_text)
+ 'data-line-number="1">',
+ output_text,
+ )
self.assertIn(
- ' bar
| ', output_text)
+ ' bar
| ', output_text
+ )
data2 = regex.findall(output_text)
self.assertEqual(len(data2), 3)
self.assertEqual(data[0], data2[0])
@@ -2642,260 +2931,278 @@ class PagureFlaskRepotests(tests.Modeltests):
self.assertEqual(data2[1], data2[2])
# View what's supposed to be an image
- output = self.app.get('/test/blame/test.jpg')
+ output = self.app.get("/test/blame/test.jpg")
self.assertEqual(output.status_code, 400)
output_text = output.get_data(as_text=True)
- self.assertIn(
- '400 Bad Request', output_text)
- self.assertIn(
- 'Binary files cannot be blamed ', output_text)
+ self.assertIn("400 Bad Request", output_text)
+ self.assertIn("Binary files cannot be blamed ", output_text)
# View folder
- output = self.app.get('/test/blame/folder1')
+ output = self.app.get("/test/blame/folder1")
self.assertEqual(output.status_code, 404)
output_text = output.get_data(as_text=True)
- self.assertIn("Page not found :'( - Pagure", output_text)
self.assertIn(
- 'Page not found (404)', output_text)
+ "Page not found :'( - Pagure", output_text
+ )
+ self.assertIn("Page not found (404)", output_text)
# View by image name -- with a non-existant file
- output = self.app.get('/test/blame/testfoo.jpg')
+ output = self.app.get("/test/blame/testfoo.jpg")
self.assertEqual(output.status_code, 404)
- output = self.app.get('/test/blame/folder1/testfoo.jpg')
+ 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, 'repos', 'test.git'),
- ncommits=1, filename='Šource')
- output = self.app.get('/test/blame/Šource')
+ os.path.join(self.path, "repos", "test.git"),
+ ncommits=1,
+ filename="Šource",
+ )
+ output = self.app.get("/test/blame/Šource")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertEqual(output.headers['Content-Type'].lower(),
- 'text/html; charset=utf-8')
- self.assertIn(
- ' Šource',
- output_text
+ self.assertEqual(
+ output.headers["Content-Type"].lower(), "text/html; charset=utf-8"
)
- self.assertIn(
- '', output_text)
+ self.assertIn(" Šource", output_text)
+ self.assertIn('', output_text)
self.assertIn(
' | ', output_text)
+ 'data-line-number="1">',
+ output_text,
+ )
self.assertIn(
- 'Row 0
| ',
- output_text
+ 'Row 0
| ', output_text
)
# Add a fork of a fork
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test3',
- description='test project #3',
+ name="test3",
+ description="test project #3",
is_fork=True,
parent_id=1,
- hook_token='aaabbbppp',
+ hook_token="aaabbbppp",
)
self.session.add(item)
self.session.commit()
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'))
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git")
+ )
tests.add_readme_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'))
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git")
+ )
tests.add_commit_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'),
- ncommits=10)
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git"),
+ ncommits=10,
+ )
tests.add_content_to_git(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'),
- content='✨☃🍰☃✨')
+ os.path.join(self.path, "repos", "forks", "pingou", "test3.git"),
+ content="✨☃🍰☃✨",
+ )
- output = self.app.get('/fork/pingou/test3/blame/sources')
+ output = self.app.get("/fork/pingou/test3/blame/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn('', output_text)
self.assertIn(
' | ', output_text)
+ 'data-line-number="1">',
+ output_text,
+ )
self.assertIn(
' barRow 0
| ',
- output_text)
+ output_text,
+ )
def test_view_blame_file_on_tag(self):
""" Test the view_blame_file endpoint. """
regex = re.compile(r'>(\w+)\n')
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
# Add some content to the git repo
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'test.git'))
- tests.add_readme_git_repo(
- os.path.join(self.path, 'repos', 'test.git'))
+ os.path.join(self.path, "repos", "test.git")
+ )
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
# add a tag to the git repo
- repo = pygit2.Repository(
- os.path.join(self.path, 'repos', 'test.git'))
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
commit = repo[repo.head.target]
- tagger = pygit2.Signature('Alice Doe', 'adoe@example.com', 12347, 0)
+ tagger = pygit2.Signature("Alice Doe", "adoe@example.com", 12347, 0)
repo.create_tag(
- 'v1.0', commit.oid.hex, pygit2.GIT_OBJ_COMMIT, tagger,
- "Release v1.0")
+ "v1.0",
+ commit.oid.hex,
+ pygit2.GIT_OBJ_COMMIT,
+ tagger,
+ "Release v1.0",
+ )
# View for tag v1.0
- output = self.app.get('/test/blame/sources?identifier=v1.0')
+ output = self.app.get("/test/blame/sources?identifier=v1.0")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn('', output_text)
self.assertIn(
' | ', output_text)
+ 'data-line-number="1">',
+ output_text,
+ )
self.assertIn(
- ' bar
| ', output_text)
+ ' bar
| ', output_text
+ )
data = regex.findall(output_text)
self.assertEqual(len(data), 2)
def test_view_commit(self):
""" Test the view_commit endpoint. """
- output = self.app.get('/foo/c/bar')
+ output = self.app.get("/foo/c/bar")
# No project registered in the DB
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- output = self.app.get('/test/c/bar')
+ output = self.app.get("/test/c/bar")
# No git repo associated
self.assertEqual(output.status_code, 404)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- output = self.app.get('/test/c/bar')
+ output = self.app.get("/test/c/bar")
self.assertEqual(output.status_code, 404)
# Add a README to the git repo - First commit
- tests.add_readme_git_repo(os.path.join(self.path, 'repos', 'test.git'))
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
# View first commit
- output = self.app.get('/test/c/%s' % commit.oid.hex)
+ output = self.app.get("/test/c/%s" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- '#commit-overview-collapse',
- output_text)
- self.assertIn('Merged by Alice Author', output_text)
- self.assertIn('Committed by Cecil Committer', output_text)
+ self.assertIn("#commit-overview-collapse", output_text)
+ self.assertIn("Merged by Alice Author", output_text)
+ self.assertIn("Committed by Cecil Committer", output_text)
self.assertIn(
'file added ', output_text)
+ 'border-0 font-weight-bold">file added',
+ output_text,
+ )
# View first commit - with the old URL scheme disabled - default
output = self.app.get(
- '/test/%s' % commit.oid.hex, follow_redirects=True)
+ "/test/%s" % commit.oid.hex, follow_redirects=True
+ )
self.assertEqual(output.status_code, 404)
output_text = output.get_data(as_text=True)
- self.assertIn('Project not found ', output_text)
+ self.assertIn("Project not found ", output_text)
# Add some content to the git repo
- tests.add_content_git_repo(os.path.join(self.path, 'repos',
- 'test.git'))
+ tests.add_content_git_repo(
+ os.path.join(self.path, "repos", "test.git")
+ )
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
# Add a symlink to test that it displays correctly
tests.add_commit_git_repo(
- os.path.join(self.path, 'repos', 'test.git'),
- ncommits=1, filename='sources-sl', symlink_to='sources'
+ os.path.join(self.path, "repos", "test.git"),
+ ncommits=1,
+ filename="sources-sl",
+ symlink_to="sources",
)
- commit_sl = repo.revparse_single('HEAD')
+ commit_sl = repo.revparse_single("HEAD")
# View another commit
- output = self.app.get('/test/c/%s' % commit.oid.hex)
+ output = self.app.get("/test/c/%s" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- '#commit-overview-collapse',
- output_text)
- self.assertIn('Authored by Alice Author', output_text)
- self.assertIn('Committed by Cecil Committer', output_text)
+ self.assertIn("#commit-overview-collapse", output_text)
+ self.assertIn("Authored by Alice Author", output_text)
+ self.assertIn("Committed by Cecil Committer", output_text)
# Make sure that diff containing symlink displays the header correctly
- output = self.app.get('/test/c/%s' % commit_sl.oid.hex)
+ output = self.app.get("/test/c/%s" % commit_sl.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
# check the link to the file
- self.assertIn('>sources-sl', output_text)
+ self.assertIn(">sources-sl", output_text)
# check that the header contains "file added" and a +1 for one added line
- self.assertIn('>file added', output_text)
- self.assertIn('>+1', output_text)
+ self.assertIn(">file added", output_text)
+ self.assertIn(">+1", output_text)
- #View the commit when branch name is provided
- output = self.app.get('/test/c/%s?branch=master' % commit.oid.hex)
+ # View the commit when branch name is provided
+ output = self.app.get("/test/c/%s?branch=master" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'\n Commits'
- '\n ', output_text)
+ "\n ",
+ output_text,
+ )
- #View the commit when branch name is wrong, show the commit
- output = self.app.get('/test/c/%s?branch=abcxyz' % commit.oid.hex)
+ # View the commit when branch name is wrong, show the commit
+ output = self.app.get("/test/c/%s?branch=abcxyz" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'\n Commits'
- '\n \n', output_text)
+ "\n \n",
+ output_text,
+ )
# Add a fork of a fork
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test3',
- description='test project #3',
+ name="test3",
+ description="test project #3",
is_fork=True,
parent_id=1,
- hook_token='aaabbbkkk',
+ hook_token="aaabbbkkk",
)
self.session.add(item)
self.session.commit()
forkedgit = os.path.join(
- self.path, 'repos', 'forks', 'pingou', 'test3.git')
+ self.path, "repos", "forks", "pingou", "test3.git"
+ )
tests.add_content_git_repo(forkedgit)
tests.add_readme_git_repo(forkedgit)
repo = pygit2.Repository(forkedgit)
- commit = repo.revparse_single('HEAD')
+ commit = repo.revparse_single("HEAD")
# Commit does not exist in anothe repo :)
- output = self.app.get('/test/c/%s' % commit.oid.hex)
+ output = self.app.get("/test/c/%s" % commit.oid.hex)
self.assertEqual(output.status_code, 404)
# View commit of fork
- output = self.app.get(
- '/fork/pingou/test3/c/%s' % commit.oid.hex)
+ output = self.app.get("/fork/pingou/test3/c/%s" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- '#commit-overview-collapse',
- output_text)
- self.assertIn('Authored by Alice Author', output_text)
- self.assertIn('Committed by Cecil Committer', output_text)
-
+ self.assertIn("#commit-overview-collapse", output_text)
+ self.assertIn("Authored by Alice Author", output_text)
+ self.assertIn("Committed by Cecil Committer", output_text)
# Try the old URL scheme with a short hash
output = self.app.get(
- '/fork/pingou/test3/%s' % commit.oid.hex[:10],
- follow_redirects=True)
+ "/fork/pingou/test3/%s" % commit.oid.hex[:10],
+ follow_redirects=True,
+ )
self.assertEqual(output.status_code, 404)
output_text = output.get_data(as_text=True)
- self.assertIn('Project not found ', output_text)
+ self.assertIn("Project not found ", output_text)
- #View the commit of the fork when branch name is provided
- output = self.app.get('/fork/pingou/test3/c/%s?branch=master' % commit.oid.hex)
+ # View the commit of the fork when branch name is provided
+ output = self.app.get(
+ "/fork/pingou/test3/c/%s?branch=master" % commit.oid.hex
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -2903,123 +3210,140 @@ class PagureFlaskRepotests(tests.Modeltests):
'href="/fork/pingou/test3/commits/master">\n '
' Commits'
- '\n \n', output_text)
+ "\n \n",
+ output_text,
+ )
- #View the commit of the fork when branch name is wrong
- output = self.app.get('/fork/pingou/test3/c/%s?branch=abcxyz' % commit.oid.hex)
+ # View the commit of the fork when branch name is wrong
+ output = self.app.get(
+ "/fork/pingou/test3/c/%s?branch=abcxyz" % commit.oid.hex
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'\n Commits'
- '\n ', output_text)
+ "\n ",
+ output_text,
+ )
def test_view_commit_with_full_link(self):
""" Test the view_commit endpoint when the commit message includes
an url. """
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- folder = os.path.join(self.path, 'repos', 'test.git')
+ folder = os.path.join(self.path, "repos", "test.git")
# Add a README to the git repo - First commit
tests.add_readme_git_repo(folder)
tests.create_projects_git(folder, bare=True)
# Add a commit with an url in the commit message
tests.add_content_to_git(
- folder, branch='master', filename='sources', content='foo',
- message='Test commit message\n\n'
- 'Fixes http://example.com/pagure/issue/2'
+ folder,
+ branch="master",
+ filename="sources",
+ content="foo",
+ message="Test commit message\n\n"
+ "Fixes http://example.com/pagure/issue/2",
)
# Add a README to the git repo - First commit
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
# View first commit
- output = self.app.get('/test/c/%s' % commit.oid.hex)
+ output = self.app.get("/test/c/%s" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- '#commit-overview-collapse',
- output_text)
+ self.assertIn("#commit-overview-collapse", output_text)
self.assertIn(
'\n '
- 'Test commit message\n \n '
+ "Test commit message\n \n "
'Fixes http://example.com/pagure/issue/2\n '
- '', output_text)
+ "",
+ output_text,
+ )
self.assertIn(
'file added ', output_text)
+ 'border-0 font-weight-bold">file added',
+ output_text,
+ )
def test_view_commit_with_short_link(self):
""" Test the view_commit endpoint when the commit message includes
an url. """
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- folder = os.path.join(self.path, 'repos', 'test.git')
+ folder = os.path.join(self.path, "repos", "test.git")
# Add a README to the git repo - First commit
tests.add_readme_git_repo(folder)
tests.create_projects_git(folder, bare=True)
# Add a commit with an url in the commit message
tests.add_content_to_git(
- folder, branch='master', filename='sources', content='foo',
- message='Test commit message\n\nFixes #2'
+ folder,
+ branch="master",
+ filename="sources",
+ content="foo",
+ message="Test commit message\n\nFixes #2",
)
# Add a README to the git repo - First commit
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
# View first commit
- output = self.app.get('/test/c/%s' % commit.oid.hex)
+ output = self.app.get("/test/c/%s" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- '#commit-overview-collapse',
- output_text)
+ self.assertIn("#commit-overview-collapse", output_text)
self.assertIn(
'\n '
- 'Test commit message\n \n '
- 'Fixes #2\n ', output_text)
+ "Test commit message\n \n "
+ "Fixes #2\n ",
+ output_text,
+ )
self.assertIn(
'file added ', output_text)
+ 'border-0 font-weight-bold">file added',
+ output_text,
+ )
def test_view_commit_patch(self):
""" Test the view_commit_patch endpoint. """
# No project registered in the DB
- output = self.app.get('/foo/c/bar.patch')
+ output = self.app.get("/foo/c/bar.patch")
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- output = self.app.get('/test/c/bar.patch')
+ output = self.app.get("/test/c/bar.patch")
# No git repo associated
self.assertEqual(output.status_code, 404)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- output = self.app.get('/test/c/bar.patch')
+ output = self.app.get("/test/c/bar.patch")
self.assertEqual(output.status_code, 404)
# Add a README to the git repo - First commit
- tests.add_readme_git_repo(os.path.join(self.path, 'repos', 'test.git'))
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
# View first commit
- output = self.app.get('/test/c/%s.patch' % commit.oid.hex)
+ output = self.app.get("/test/c/%s.patch" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(r'''diff --git a/README.rst b/README.rst
+ self.assertIn(
+ r"""diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..fb7093d
--- /dev/null
@@ -3041,24 +3365,29 @@ index 0000000..fb7093d
+Homepage: https://github.com/pypingou/pagure
+
+Dev instance: http://209.132.184.222/ (/!\ May change unexpectedly, it's a dev instance ;-))
-''', output_text)
- self.assertIn('Subject: Add a README file', output_text)
+""",
+ output_text,
+ )
+ self.assertIn("Subject: Add a README file", output_text)
# Add some content to the git repo
- tests.add_content_git_repo(os.path.join(self.path, 'repos',
- 'test.git'))
+ tests.add_content_git_repo(
+ os.path.join(self.path, "repos", "test.git")
+ )
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
# View another commit
- output = self.app.get('/test/c/%s.patch' % commit.oid.hex)
+ output = self.app.get("/test/c/%s.patch" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- 'Subject: Add some directory and a file for more testing',
- output_text)
- self.assertIn(r'''diff --git a/folder1/folder2/file b/folder1/folder2/file
+ "Subject: Add some directory and a file for more testing",
+ output_text,
+ )
+ self.assertIn(
+ r"""diff --git a/folder1/folder2/file b/folder1/folder2/file
new file mode 100644
index 0000000..11980b1
--- /dev/null
@@ -3068,38 +3397,41 @@ index 0000000..11980b1
+ bar
+baz
\ No newline at end of file
-''', output_text)
+""",
+ output_text,
+ )
# Add a fork of a fork
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test3',
- description='test project #3',
+ name="test3",
+ description="test project #3",
is_fork=True,
parent_id=1,
- hook_token='aaabbblll',
+ hook_token="aaabbblll",
)
self.session.add(item)
self.session.commit()
- forkedgit = os.path.join(self.path, 'repos', 'forks', 'pingou',
- 'test3.git')
+ forkedgit = os.path.join(
+ self.path, "repos", "forks", "pingou", "test3.git"
+ )
tests.add_content_git_repo(forkedgit)
tests.add_readme_git_repo(forkedgit)
repo = pygit2.Repository(forkedgit)
- commit = repo.revparse_single('HEAD')
+ commit = repo.revparse_single("HEAD")
# Commit does not exist in anothe repo :)
- output = self.app.get('/test/c/%s.patch' % commit.oid.hex)
+ output = self.app.get("/test/c/%s.patch" % commit.oid.hex)
self.assertEqual(output.status_code, 404)
# View commit of fork
- output = self.app.get(
- '/fork/pingou/test3/c/%s.patch' % commit.oid.hex)
+ output = self.app.get("/fork/pingou/test3/c/%s.patch" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(r'''diff --git a/README.rst b/README.rst
+ self.assertIn(
+ r"""diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..fb7093d
--- /dev/null
@@ -3121,36 +3453,39 @@ index 0000000..fb7093d
+Homepage: https://github.com/pypingou/pagure
+
+Dev instance: http://209.132.184.222/ (/!\ May change unexpectedly, it's a dev instance ;-))
-''', output_text)
+""",
+ output_text,
+ )
def test_view_commit_diff(self):
""" Test the view_commit_diff endpoint. """
# No project registered in the DB
- output = self.app.get('/foo/c/bar.diff')
+ output = self.app.get("/foo/c/bar.diff")
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- output = self.app.get('/test/c/bar.diff')
+ output = self.app.get("/test/c/bar.diff")
# No git repo associated
self.assertEqual(output.status_code, 404)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- output = self.app.get('/test/c/bar.diff')
+ output = self.app.get("/test/c/bar.diff")
self.assertEqual(output.status_code, 404)
# Add a README to the git repo - First commit
- tests.add_readme_git_repo(os.path.join(self.path, 'repos', 'test.git'))
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
# View first commit
- output = self.app.get('/test/c/%s.diff' % commit.oid.hex)
+ output = self.app.get("/test/c/%s.diff" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertEqual(r'''diff --git a/README.rst b/README.rst
+ self.assertEqual(
+ r"""diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..fb7093d
--- /dev/null
@@ -3172,124 +3507,130 @@ index 0000000..fb7093d
+Homepage: https://github.com/pypingou/pagure
+
+Dev instance: http://209.132.184.222/ (/!\ May change unexpectedly, it's a dev instance ;-))
-''', output_text)
+""",
+ output_text,
+ )
def test_view_tree(self):
""" Test the view_tree endpoint. """
- output = self.app.get('/foo/tree/')
+ output = self.app.get("/foo/tree/")
# No project registered in the DB
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- output = self.app.get('/test/tree/')
+ output = self.app.get("/test/tree/")
# No git repo associated
self.assertEqual(output.status_code, 404)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- output = self.app.get('/test/tree/')
+ output = self.app.get("/test/tree/")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- '''
+ """
-
None
- ''', output_text)
- self.assertIn(
- 'No content found in this repository', output_text)
+ """,
+ output_text,
+ )
+ self.assertIn("No content found in this repository", output_text)
# Add a README to the git repo - First commit
- tests.add_readme_git_repo(os.path.join(self.path, 'repos', 'test.git'))
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- commit = repo.revparse_single('HEAD')
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ commit = repo.revparse_single("HEAD")
# View first commit
- output = self.app.get('/test/tree/%s' % commit.oid.hex)
+ output = self.app.get("/test/tree/%s" % commit.oid.hex)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('Tree - test - Pagure', output_text)
- self.assertIn('README.rst', output_text)
- self.assertFalse(
- 'No content found in this repository' in output_text)
+ self.assertIn("Tree - test - Pagure", output_text)
+ self.assertIn("README.rst", output_text)
+ self.assertFalse("No content found in this repository" in output_text)
# View tree, no identifier:
- output = self.app.get('/test/tree/')
+ output = self.app.get("/test/tree/")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('Tree - test - Pagure', output_text)
- self.assertIn('README.rst', output_text)
- self.assertNotIn(
- 'No content found in this repository', output_text)
+ self.assertIn("Tree - test - Pagure", output_text)
+ self.assertIn("README.rst", output_text)
+ self.assertNotIn("No content found in this repository", output_text)
self.assertNotIn(
"'None' not found in the git repository, going back to: "
- "master", output_text)
+ "master",
+ output_text,
+ )
# View tree, invalid identifier:
- output = self.app.get('/test/tree/invalid')
+ output = self.app.get("/test/tree/invalid")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('Tree - test - Pagure', output_text)
- self.assertIn('README.rst', output_text)
- self.assertNotIn(
- 'No content found in this repository', output_text)
+ self.assertIn("Tree - test - Pagure", output_text)
+ self.assertIn("README.rst", output_text)
+ self.assertNotIn("No content found in this repository", output_text)
self.assertIn(
"'invalid' not found in the git repository, going back "
- "to: master", output_text)
+ "to: master",
+ output_text,
+ )
# View tree by branch
- output = self.app.get('/test/tree/master')
+ output = self.app.get("/test/tree/master")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('Tree - test - Pagure', output_text)
- self.assertIn('README.rst', output_text)
- self.assertNotIn(
- 'No content found in this repository', output_text)
+ self.assertIn("Tree - test - Pagure", output_text)
+ self.assertIn("README.rst", output_text)
+ self.assertNotIn("No content found in this repository", output_text)
# Add a fork of a fork
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test3',
- description='test project #3',
+ name="test3",
+ description="test project #3",
is_fork=True,
parent_id=1,
- hook_token='aaabbbfff',
+ hook_token="aaabbbfff",
)
self.session.add(item)
self.session.commit()
- forkedgit = os.path.join(self.path, 'repos', 'forks', 'pingou',
- 'test3.git')
+ forkedgit = os.path.join(
+ self.path, "repos", "forks", "pingou", "test3.git"
+ )
tests.add_content_git_repo(forkedgit)
- output = self.app.get('/fork/pingou/test3/tree/')
+ output = self.app.get("/fork/pingou/test3/tree/")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('Tree - test3 - Pagure', output_text)
+ self.assertIn("Tree - test3 - Pagure", output_text)
self.assertIn(
- '',
- output_text)
+ '', output_text
+ )
self.assertIn(
- '',
- output_text)
- self.assertNotIn(
- 'No content found in this repository', output_text)
+ '', output_text
+ )
+ self.assertNotIn("No content found in this repository", output_text)
output = self.app.get(
- '/fork/pingou/test3/blob/master/f/folder1/folder2')
+ "/fork/pingou/test3/blob/master/f/folder1/folder2"
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'', output_text)
+ 'f/folder1/folder2/file%C5%A0">',
+ output_text,
+ )
- @patch.dict('pagure.config.config', {'ENABLE_DEL_PROJECTS': False})
- @patch('pagure.lib.notify.send_email')
- @patch('pagure.decorators.admin_session_timedout')
+ @patch.dict("pagure.config.config", {"ENABLE_DEL_PROJECTS": False})
+ @patch("pagure.lib.notify.send_email")
+ @patch("pagure.decorators.admin_session_timedout")
def test_delete_repo_when_turned_off(self, ast, send_email):
""" Test the delete_repo endpoint when deletion of a repo is
turned off in the pagure instance """
@@ -3297,178 +3638,201 @@ index 0000000..fb7093d
send_email.return_value = True
# No Git repo
- output = self.app.post('/foo/delete')
+ output = self.app.post("/foo/delete")
self.assertEqual(output.status_code, 404)
- user = tests.FakeUser(username='pingou')
+ user = tests.FakeUser(username="pingou")
with tests.user_set(self.app.application, user):
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 404)
# User not logged in
- output = self.app.post('/test/delete')
+ output = self.app.post("/test/delete")
self.assertEqual(output.status_code, 302)
# Ensure the project isn't read-only
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(self.session, "test")
repo.read_only = False
self.session.add(repo)
self.session.commit()
with tests.user_set(self.app.application, user):
# Only git repo
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 404)
# Only git and doc repo
- tests.create_projects_git(os.path.join(self.path, 'repos'))
- tests.create_projects_git(os.path.join(self.path, 'docs'))
- output = self.app.post('/test/delete', follow_redirects=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"))
+ tests.create_projects_git(os.path.join(self.path, "docs"))
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 404)
# Create all the git repos
- tests.create_projects_git(os.path.join(self.path, 'repos'))
- tests.create_projects_git(os.path.join(self.path, 'docs'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
+ tests.create_projects_git(os.path.join(self.path, "docs"))
tests.create_projects_git(
- os.path.join(self.path, 'tickets'), bare=True)
+ os.path.join(self.path, "tickets"), bare=True
+ )
tests.create_projects_git(
- os.path.join(self.path, 'requests'), bare=True)
+ os.path.join(self.path, "requests"), bare=True
+ )
# Check repo was created
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'3 Projects', output_text)
+ 'border-0 ml-auto font-weight-bold">3 Projects',
+ output_text,
+ )
self.assertNotIn(
'Forks ',
- output_text)
+ output_text,
+ )
# add issues
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
msg = pagure.lib.query.new_issue(
session=self.session,
repo=repo,
- title='Test issue',
- content='We should work on this',
- user='pingou',
+ title="Test issue",
+ content="We should work on this",
+ user="pingou",
)
self.session.commit()
- self.assertEqual(msg.title, 'Test issue')
+ self.assertEqual(msg.title, "Test issue")
msg = pagure.lib.query.new_issue(
session=self.session,
repo=repo,
- title='Test issue #2',
- content='We should work on this, really',
- user='pingou',
+ title="Test issue #2",
+ content="We should work on this, really",
+ user="pingou",
)
self.session.commit()
- self.assertEqual(msg.title, 'Test issue #2')
+ self.assertEqual(msg.title, "Test issue #2")
# Add a comment to an issue
- issue = pagure.lib.query.search_issues(self.session, repo, issueid=1)
+ issue = pagure.lib.query.search_issues(
+ self.session, repo, issueid=1
+ )
msg = pagure.lib.query.add_issue_comment(
session=self.session,
issue=issue,
- comment='Hey look a comment!',
- user='foo',
+ comment="Hey look a comment!",
+ user="foo",
)
self.session.commit()
- self.assertEqual(msg, 'Comment added')
+ self.assertEqual(msg, "Comment added")
# add pull-requests
req = pagure.lib.query.new_pull_request(
session=self.session,
repo_from=repo,
- branch_from='feature',
+ branch_from="feature",
repo_to=repo,
- branch_to='master',
- title='test pull-request',
- user='pingou',
+ branch_to="master",
+ title="test pull-request",
+ user="pingou",
)
self.session.commit()
self.assertEqual(req.id, 3)
- self.assertEqual(req.title, 'test pull-request')
+ self.assertEqual(req.title, "test pull-request")
req = pagure.lib.query.new_pull_request(
session=self.session,
repo_from=repo,
- branch_from='feature2',
+ branch_from="feature2",
repo_to=repo,
- branch_to='master',
- title='test pull-request',
- user='pingou',
+ branch_to="master",
+ title="test pull-request",
+ user="pingou",
)
self.session.commit()
self.assertEqual(req.id, 4)
- self.assertEqual(req.title, 'test pull-request')
+ self.assertEqual(req.title, "test pull-request")
# Add comment on a pull-request
request = pagure.lib.query.search_pull_requests(
- self.session, requestid=3)
+ self.session, requestid=3
+ )
msg = pagure.lib.query.add_pull_request_comment(
session=self.session,
request=request,
- commit='commithash',
+ commit="commithash",
tree_id=None,
- filename='file',
+ filename="file",
row=None,
- comment='This is awesome, I got to remember it!',
- user='foo',
+ comment="This is awesome, I got to remember it!",
+ user="foo",
)
- self.assertEqual(msg, 'Comment added')
+ self.assertEqual(msg, "Comment added")
# Check before deleting the project
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'3 Projects', output_text)
+ 'border-0 ml-auto font-weight-bold">3 Projects',
+ output_text,
+ )
self.assertNotIn(
'Forks ',
- output_text)
+ output_text,
+ )
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 404)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertNotEqual(repo, None)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test2')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test2"
+ )
self.assertNotEqual(repo, None)
# Add a fork of a fork
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test3',
- description='test project #3',
+ name="test3",
+ description="test project #3",
is_fork=True,
parent_id=2,
- hook_token='aaabbbjjj',
+ hook_token="aaabbbjjj",
)
self.session.add(item)
self.session.commit()
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou',
- 'test3.git'))
+ os.path.join(
+ self.path, "repos", "forks", "pingou", "test3.git"
+ )
+ )
tests.add_content_git_repo(
- os.path.join(self.path, 'docs', 'pingou', 'test3.git'))
+ os.path.join(self.path, "docs", "pingou", "test3.git")
+ )
tests.add_content_git_repo(
- os.path.join(self.path, 'tickets', 'pingou', 'test3.git'))
+ os.path.join(self.path, "tickets", "pingou", "test3.git")
+ )
# Check before deleting the fork
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'3 Projects', output_text)
+ 'border-0 ml-auto font-weight-bold">3 Projects',
+ output_text,
+ )
self.assertIn(
"""
@@ -3478,96 +3842,107 @@ index 0000000..fb7093d
1
- """, output_text)
+ """,
+ output_text,
+ )
output = self.app.post(
- '/fork/pingou/test3/delete', follow_redirects=True)
+ "/fork/pingou/test3/delete", follow_redirects=True
+ )
self.assertEqual(output.status_code, 404)
- @patch('pagure.lib.notify.send_email')
- @patch('pagure.decorators.admin_session_timedout')
+ @patch("pagure.lib.notify.send_email")
+ @patch("pagure.decorators.admin_session_timedout")
def test_delete_read_only_repo(self, ast, send_email):
""" Test the delete_repo endpoint when the repo is read_only """
ast.return_value = False
send_email.return_value = True
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
# Create all the git repos
- tests.create_projects_git(os.path.join(self.path, 'repos'))
- tests.create_projects_git(os.path.join(self.path, 'docs'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
+ tests.create_projects_git(os.path.join(self.path, "docs"))
tests.create_projects_git(
- os.path.join(self.path, 'tickets'), bare=True)
+ os.path.join(self.path, "tickets"), bare=True
+ )
tests.create_projects_git(
- os.path.join(self.path, 'requests'), bare=True)
+ os.path.join(self.path, "requests"), bare=True
+ )
- user = tests.FakeUser(username='pingou')
+ user = tests.FakeUser(username="pingou")
with tests.user_set(self.app.application, user):
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertNotEqual(repo, None)
repo.read_only = True
self.session.add(repo)
self.session.commit()
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- 'Settings - test - Pagure', output_text)
+ "Settings - test - Pagure", output_text
+ )
self.assertIn(
- '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_text)
+ "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_text,
+ )
self.assertIn(
'title="Action disabled while project\'s ACLs are being refreshed">',
- output_text)
+ output_text,
+ )
- @patch('pagure.lib.notify.send_email', MagicMock(return_value=True))
- @patch('pagure.decorators.admin_session_timedout')
+ @patch("pagure.lib.notify.send_email", MagicMock(return_value=True))
+ @patch("pagure.decorators.admin_session_timedout")
def test_delete_repo(self, ast):
""" Test the delete_repo endpoint. """
ast.return_value = False
# No Git repo
- output = self.app.post('/foo/delete')
+ output = self.app.post("/foo/delete")
self.assertEqual(output.status_code, 404)
user = tests.FakeUser()
with tests.user_set(self.app.application, user):
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
# No project registered in the DB (no git repo)
- output = self.app.post('/foo/delete')
+ output = self.app.post("/foo/delete")
self.assertEqual(output.status_code, 404)
# User not allowed
- output = self.app.post('/test/delete')
+ output = self.app.post("/test/delete")
self.assertEqual(output.status_code, 403)
# User not logged in
- output = self.app.post('/test/delete')
+ output = self.app.post("/test/delete")
self.assertEqual(output.status_code, 302)
# Ensure the project isn't read-only
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(self.session, "test")
repo.read_only = False
self.session.add(repo)
self.session.commit()
- user = tests.FakeUser(username='pingou')
+ user = tests.FakeUser(username="pingou")
with tests.user_set(self.app.application, user):
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
ast.return_value = True
- output = self.app.post('/test/delete')
+ output = self.app.post("/test/delete")
self.assertEqual(output.status_code, 302)
ast.return_value = False
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -3579,7 +3954,9 @@ index 0000000..fb7093d
2
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -3589,21 +3966,23 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
# Only git repo
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test',
- description='test project #1',
- hook_token='aaabbbggg',
+ name="test",
+ description="test project #1",
+ hook_token="aaabbbggg",
read_only=False,
)
self.session.add(item)
self.session.commit()
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -3615,7 +3994,9 @@ index 0000000..fb7093d
2
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -3625,21 +4006,23 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
# Only git and doc repo
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test',
- description='test project #1',
- hook_token='aaabbbhhh',
+ name="test",
+ description="test project #1",
+ hook_token="aaabbbhhh",
read_only=False,
)
self.session.add(item)
self.session.commit()
- tests.create_projects_git(os.path.join(self.path, 'repos'))
- tests.create_projects_git(os.path.join(self.path, 'docs'))
- output = self.app.post('/test/delete', follow_redirects=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"))
+ tests.create_projects_git(os.path.join(self.path, "docs"))
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -3651,7 +4034,9 @@ index 0000000..fb7093d
2
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -3661,29 +4046,33 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
# All repo there
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test',
- description='test project #1',
- hook_token='aaabbbiii',
+ name="test",
+ description="test project #1",
+ hook_token="aaabbbiii",
read_only=False,
)
self.session.add(item)
self.session.commit()
# Create all the git repos
- tests.create_projects_git(os.path.join(self.path, 'repos'))
- tests.create_projects_git(os.path.join(self.path, 'docs'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
+ tests.create_projects_git(os.path.join(self.path, "docs"))
tests.create_projects_git(
- os.path.join(self.path, 'tickets'), bare=True)
+ os.path.join(self.path, "tickets"), bare=True
+ )
tests.create_projects_git(
- os.path.join(self.path, 'requests'), bare=True)
+ os.path.join(self.path, "requests"), bare=True
+ )
# Check repo was created
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -3695,89 +4084,97 @@ index 0000000..fb7093d
3
- """, output_text)
+ """,
+ output_text,
+ )
self.assertNotIn(
"""Forks """,
- output_text)
+ output_text,
+ )
# add issues
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
msg = pagure.lib.query.new_issue(
session=self.session,
repo=repo,
- title='Test issue',
- content='We should work on this',
- user='pingou',
+ title="Test issue",
+ content="We should work on this",
+ user="pingou",
)
self.session.commit()
- self.assertEqual(msg.title, 'Test issue')
+ self.assertEqual(msg.title, "Test issue")
msg = pagure.lib.query.new_issue(
session=self.session,
repo=repo,
- title='Test issue #2',
- content='We should work on this, really',
- user='pingou',
+ title="Test issue #2",
+ content="We should work on this, really",
+ user="pingou",
)
self.session.commit()
- self.assertEqual(msg.title, 'Test issue #2')
+ self.assertEqual(msg.title, "Test issue #2")
# Add a comment to an issue
- issue = pagure.lib.query.search_issues(self.session, repo, issueid=1)
+ issue = pagure.lib.query.search_issues(
+ self.session, repo, issueid=1
+ )
msg = pagure.lib.query.add_issue_comment(
session=self.session,
issue=issue,
- comment='Hey look a comment!',
- user='foo',
+ comment="Hey look a comment!",
+ user="foo",
)
self.session.commit()
- self.assertEqual(msg, 'Comment added')
+ self.assertEqual(msg, "Comment added")
# add pull-requests
req = pagure.lib.query.new_pull_request(
session=self.session,
repo_from=repo,
- branch_from='feature',
+ branch_from="feature",
repo_to=repo,
- branch_to='master',
- title='test pull-request',
- user='pingou',
+ branch_to="master",
+ title="test pull-request",
+ user="pingou",
)
self.session.commit()
self.assertEqual(req.id, 3)
- self.assertEqual(req.title, 'test pull-request')
+ self.assertEqual(req.title, "test pull-request")
req = pagure.lib.query.new_pull_request(
session=self.session,
repo_from=repo,
- branch_from='feature2',
+ branch_from="feature2",
repo_to=repo,
- branch_to='master',
- title='test pull-request',
- user='pingou',
+ branch_to="master",
+ title="test pull-request",
+ user="pingou",
)
self.session.commit()
self.assertEqual(req.id, 4)
- self.assertEqual(req.title, 'test pull-request')
+ self.assertEqual(req.title, "test pull-request")
# Add comment on a pull-request
request = pagure.lib.query.search_pull_requests(
- self.session, requestid=3)
+ self.session, requestid=3
+ )
msg = pagure.lib.query.add_pull_request_comment(
session=self.session,
request=request,
- commit='commithash',
+ commit="commithash",
tree_id=None,
- filename='file',
+ filename="file",
row=None,
- comment='This is awesome, I got to remember it!',
- user='foo',
+ comment="This is awesome, I got to remember it!",
+ user="foo",
)
- self.assertEqual(msg, 'Comment added')
+ self.assertEqual(msg, "Comment added")
# Check before deleting the project
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -3789,12 +4186,15 @@ index 0000000..fb7093d
3
- """, output_text)
+ """,
+ output_text,
+ )
self.assertNotIn(
"""Forks """,
- output_text)
+ output_text,
+ )
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -3806,7 +4206,9 @@ index 0000000..fb7093d
2
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -3816,35 +4218,45 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertEqual(repo, None)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test2')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test2"
+ )
self.assertNotEqual(repo, None)
# Add a fork of a fork
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test3',
- description='test project #3',
+ name="test3",
+ description="test project #3",
is_fork=True,
parent_id=2,
- hook_token='aaabbbjjj',
+ hook_token="aaabbbjjj",
read_only=False,
)
self.session.add(item)
self.session.commit()
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou',
- 'test3.git'))
+ os.path.join(
+ self.path, "repos", "forks", "pingou", "test3.git"
+ )
+ )
tests.add_content_git_repo(
- os.path.join(self.path, 'docs', 'pingou', 'test3.git'))
+ os.path.join(self.path, "docs", "pingou", "test3.git")
+ )
tests.add_content_git_repo(
- os.path.join(self.path, 'tickets', 'pingou', 'test3.git'))
+ os.path.join(self.path, "tickets", "pingou", "test3.git")
+ )
# Check before deleting the fork
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -3856,7 +4268,9 @@ index 0000000..fb7093d
2
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -3866,10 +4280,13 @@ index 0000000..fb7093d
1
- """, output_text)
+ """,
+ output_text,
+ )
output = self.app.post(
- '/fork/pingou/test3/delete', follow_redirects=True)
+ "/fork/pingou/test3/delete", follow_redirects=True
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -3881,7 +4298,9 @@ index 0000000..fb7093d
2
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -3891,28 +4310,33 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
- @patch.dict('pagure.config.config', {'TICKETS_FOLDER': None})
- @patch('pagure.lib.notify.send_email', MagicMock(return_value=True))
- @patch('pagure.decorators.admin_session_timedout', MagicMock(return_value=False))
+ @patch.dict("pagure.config.config", {"TICKETS_FOLDER": None})
+ @patch("pagure.lib.notify.send_email", MagicMock(return_value=True))
+ @patch(
+ "pagure.decorators.admin_session_timedout",
+ MagicMock(return_value=False),
+ )
def test_delete_repo_no_ticket(self):
""" Test the delete_repo endpoint when tickets aren't enabled in
this pagure instance. """
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
# Ensure the project isn't read-only
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(self.session, "test")
repo.read_only = False
self.session.add(repo)
self.session.commit()
- user = tests.FakeUser(username='pingou')
+ user = tests.FakeUser(username="pingou")
with tests.user_set(self.app.application, user):
# Check before deleting the project
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -3924,13 +4348,16 @@ index 0000000..fb7093d
3
- """, output_text)
+ """,
+ output_text,
+ )
self.assertNotIn(
"""Forks """,
- output_text)
+ output_text,
+ )
# Delete the project
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
@@ -3944,7 +4371,9 @@ index 0000000..fb7093d
2
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -3954,84 +4383,103 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
- @patch('pagure.lib.notify.send_email')
- @patch('pagure.decorators.admin_session_timedout')
+ @patch("pagure.lib.notify.send_email")
+ @patch("pagure.decorators.admin_session_timedout")
def test_delete_repo_with_users(self, ast, send_email):
""" Test the delete_repo endpoint. """
ast.return_value = False
send_email.return_value = True
user = tests.FakeUser()
- user = tests.FakeUser(username='pingou')
+ user = tests.FakeUser(username="pingou")
with tests.user_set(self.app.application, user):
# Create new project
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test',
- description='test project #1',
- hook_token='aaabbbiii',
+ name="test",
+ description="test project #1",
+ hook_token="aaabbbiii",
read_only=False,
)
self.session.add(item)
self.session.commit()
# Create all the git repos
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
tests.create_projects_git(
- os.path.join(self.path, 'docs'), bare=True)
+ os.path.join(self.path, "docs"), bare=True
+ )
tests.create_projects_git(
- os.path.join(self.path, 'tickets'), bare=True)
+ os.path.join(self.path, "tickets"), bare=True
+ )
tests.create_projects_git(
- os.path.join(self.path, 'requests'), bare=True)
+ os.path.join(self.path, "requests"), bare=True
+ )
# Check repo was created
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'1 Projects', output_text)
+ 'border-0 ml-auto font-weight-bold">1 Projects',
+ output_text,
+ )
self.assertNotIn(
'Forks ',
- output_text)
+ output_text,
+ )
# add user
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
msg = pagure.lib.query.add_user_to_project(
session=self.session,
project=repo,
- new_user='foo',
- user='pingou',
+ new_user="foo",
+ user="pingou",
)
self.session.commit()
- self.assertEqual(msg, 'User added')
+ self.assertEqual(msg, "User added")
# Ensure the project isn't read-only (because adding an user
# will trigger an ACL refresh, thus read-only)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
repo.read_only = False
self.session.add(repo)
self.session.commit()
# Check before deleting the project
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'1 Projects', output_text)
+ 'border-0 ml-auto font-weight-bold">1 Projects',
+ output_text,
+ )
self.assertNotIn(
'Forks ',
- output_text)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ output_text,
+ )
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertNotEqual(repo, None)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test2')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test2"
+ )
self.assertEqual(repo, None)
# Delete the project
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -4043,7 +4491,9 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -4053,106 +4503,129 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
# Check after
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertEqual(repo, None)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test2')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test2"
+ )
self.assertEqual(repo, None)
- @patch('pagure.lib.notify.send_email')
- @patch('pagure.decorators.admin_session_timedout')
+ @patch("pagure.lib.notify.send_email")
+ @patch("pagure.decorators.admin_session_timedout")
def test_delete_repo_with_group(self, ast, send_email):
""" Test the delete_repo endpoint. """
ast.return_value = False
send_email.return_value = True
user = tests.FakeUser()
- user = tests.FakeUser(username='pingou')
+ user = tests.FakeUser(username="pingou")
with tests.user_set(self.app.application, user):
# Create new project
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test',
- description='test project #1',
- hook_token='aaabbbiii',
+ name="test",
+ description="test project #1",
+ hook_token="aaabbbiii",
read_only=False,
)
self.session.add(item)
self.session.commit()
# Create all the git repos
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
tests.create_projects_git(
- os.path.join(self.path, 'docs'), bare=True)
+ os.path.join(self.path, "docs"), bare=True
+ )
tests.create_projects_git(
- os.path.join(self.path, 'tickets'), bare=True)
+ os.path.join(self.path, "tickets"), bare=True
+ )
tests.create_projects_git(
- os.path.join(self.path, 'requests'), bare=True)
+ os.path.join(self.path, "requests"), bare=True
+ )
# Check repo was created
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'1 Projects', output_text)
+ 'border-0 ml-auto font-weight-bold">1 Projects',
+ output_text,
+ )
self.assertNotIn(
'Forks ',
- output_text)
+ output_text,
+ )
# Create group
msg = pagure.lib.query.add_group(
self.session,
- group_name='foo',
- display_name='foo group',
+ group_name="foo",
+ display_name="foo group",
description=None,
- group_type='bar',
- user='pingou',
+ group_type="bar",
+ user="pingou",
is_admin=False,
blacklist=[],
)
self.session.commit()
- self.assertEqual(msg, 'User `pingou` added to the group `foo`.')
+ self.assertEqual(msg, "User `pingou` added to the group `foo`.")
# Add group to the project
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
msg = pagure.lib.query.add_group_to_project(
session=self.session,
project=repo,
- new_group='foo',
- user='pingou',
+ new_group="foo",
+ user="pingou",
)
self.session.commit()
- self.assertEqual(msg, 'Group added')
+ self.assertEqual(msg, "Group added")
# Ensure the project isn't read-only (because adding a group
# will trigger an ACL refresh, thus read-only)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
repo.read_only = False
self.session.add(repo)
self.session.commit()
# check if group where we expect it
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertEqual(len(repo.projects_groups), 1)
# Check before deleting the project
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'1 Projects', output_text)
+ 'border-0 ml-auto font-weight-bold">1 Projects',
+ output_text,
+ )
self.assertNotIn(
'Forks ',
- output_text)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ output_text,
+ )
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertNotEqual(repo, None)
# Delete the project
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -4164,7 +4637,9 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -4174,94 +4649,114 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
# Check after
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertEqual(repo, None)
- @patch('pagure.lib.notify.send_email')
- @patch('pagure.decorators.admin_session_timedout')
+ @patch("pagure.lib.notify.send_email")
+ @patch("pagure.decorators.admin_session_timedout")
def test_delete_repo_with_coloredtag(self, ast, send_email):
""" Test the delete_repo endpoint. """
ast.return_value = False
send_email.return_value = True
user = tests.FakeUser()
- user = tests.FakeUser(username='pingou')
+ user = tests.FakeUser(username="pingou")
with tests.user_set(self.app.application, user):
# Create new project
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test',
- description='test project #1',
- hook_token='aaabbbiii',
+ name="test",
+ description="test project #1",
+ hook_token="aaabbbiii",
read_only=False,
)
self.session.add(item)
self.session.commit()
# Create all the git repos
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
tests.create_projects_git(
- os.path.join(self.path, 'docs'), bare=True)
+ os.path.join(self.path, "docs"), bare=True
+ )
tests.create_projects_git(
- os.path.join(self.path, 'tickets'), bare=True)
+ os.path.join(self.path, "tickets"), bare=True
+ )
tests.create_projects_git(
- os.path.join(self.path, 'requests'), bare=True)
+ os.path.join(self.path, "requests"), bare=True
+ )
# Check repo was created
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'1 Projects', output_text)
+ 'border-0 ml-auto font-weight-bold">1 Projects',
+ output_text,
+ )
self.assertNotIn(
'Forks ',
- output_text)
+ output_text,
+ )
# Create the issue
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
msg = pagure.lib.query.new_issue(
session=self.session,
repo=repo,
- title='Test issue',
- content='We should work on this',
- user='pingou',
+ title="Test issue",
+ content="We should work on this",
+ user="pingou",
)
self.session.commit()
- self.assertEqual(msg.title, 'Test issue')
+ self.assertEqual(msg.title, "Test issue")
# Add a tag to the issue
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
- issue = pagure.lib.query.search_issues(self.session, repo, issueid=1)
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
+ issue = pagure.lib.query.search_issues(
+ self.session, repo, issueid=1
+ )
msg = pagure.lib.query.add_tag_obj(
- session=self.session,
- obj=issue,
- tags='tag1',
- user='pingou',
+ session=self.session, obj=issue, tags="tag1", user="pingou"
)
self.session.commit()
- self.assertEqual(msg, 'Issue tagged with: tag1')
+ self.assertEqual(msg, "Issue tagged with: tag1")
# Check before deleting the project
- output = self.app.get('/', follow_redirects=True)
+ output = self.app.get("/", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'1 Projects', output_text)
+ 'border-0 ml-auto font-weight-bold">1 Projects',
+ output_text,
+ )
self.assertNotIn(
'Forks ',
- output_text)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ output_text,
+ )
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertNotEqual(repo, None)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test2')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test2"
+ )
self.assertEqual(repo, None)
# Delete the project
- output = self.app.post('/test/delete', follow_redirects=True)
+ output = self.app.post("/test/delete", follow_redirects=True)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -4273,7 +4768,9 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
self.assertIn(
"""
@@ -4283,437 +4780,481 @@ index 0000000..fb7093d
0
- """, output_text)
+ """,
+ output_text,
+ )
# Check after
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
self.assertEqual(repo, None)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test2')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test2"
+ )
self.assertEqual(repo, None)
- @patch('pagure.decorators.admin_session_timedout')
+ @patch("pagure.decorators.admin_session_timedout")
def test_new_repo_hook_token(self, ast):
""" Test the new_repo_hook_token endpoint. """
ast.return_value = False
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
- self.assertEqual(repo.hook_token, 'aaabbbccc')
+ repo = pagure.lib.query.get_authorized_project(self.session, "test")
+ self.assertEqual(repo.hook_token, "aaabbbccc")
user = tests.FakeUser()
with tests.user_set(self.app.application, user):
- pagure.config.config['WEBHOOK'] = True
- output = self.app.get('/new/')
+ pagure.config.config["WEBHOOK"] = True
+ output = self.app.get("/new/")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('Create new Project', output_text)
+ self.assertIn("Create new Project", output_text)
csrf_token = output_text.split(
- 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
+ 'name="csrf_token" type="hidden" value="'
+ )[1].split('">')[0]
- output = self.app.post('/foo/hook_token')
+ output = self.app.post("/foo/hook_token")
self.assertEqual(output.status_code, 404)
- output = self.app.post('/test/hook_token')
+ output = self.app.post("/test/hook_token")
self.assertEqual(output.status_code, 403)
ast.return_value = True
- output = self.app.post('/test/hook_token')
+ output = self.app.post("/test/hook_token")
self.assertEqual(output.status_code, 302)
ast.return_value = False
- pagure.config.config['WEBHOOK'] = False
+ pagure.config.config["WEBHOOK"] = False
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
- self.assertEqual(repo.hook_token, 'aaabbbccc')
+ repo = pagure.lib.query.get_authorized_project(self.session, "test")
+ self.assertEqual(repo.hook_token, "aaabbbccc")
- user.username = 'pingou'
+ user.username = "pingou"
with tests.user_set(self.app.application, user):
- pagure.config.config['WEBHOOK'] = True
- output = self.app.post('/test/hook_token')
+ pagure.config.config["WEBHOOK"] = True
+ output = self.app.post("/test/hook_token")
self.assertEqual(output.status_code, 400)
- data = {'csrf_token': csrf_token}
+ data = {"csrf_token": csrf_token}
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
- self.assertEqual(repo.hook_token, 'aaabbbccc')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
+ self.assertEqual(repo.hook_token, "aaabbbccc")
output = self.app.post(
- '/test/hook_token', data=data, follow_redirects=True)
+ "/test/hook_token", data=data, follow_redirects=True
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- 'New hook token generated',
- output_text)
- pagure.config.config['WEBHOOK'] = False
+ self.assertIn("New hook token generated", output_text)
+ pagure.config.config["WEBHOOK"] = False
self.session.commit()
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
- self.assertNotEqual(repo.hook_token, 'aaabbbccc')
+ repo = pagure.lib.query.get_authorized_project(self.session, "test")
+ self.assertNotEqual(repo.hook_token, "aaabbbccc")
- @patch('pagure.lib.notify.send_email')
- @patch('pagure.decorators.admin_session_timedout')
- @patch('pagure.lib.git.update_git')
+ @patch("pagure.lib.notify.send_email")
+ @patch("pagure.decorators.admin_session_timedout")
+ @patch("pagure.lib.git.update_git")
def test_regenerate_git(self, upgit, ast, sendmail):
""" Test the regenerate_git endpoint. """
ast.return_value = False
upgit.return_value = True
sendmail.return_value = True
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'))
+ tests.create_projects_git(os.path.join(self.path, "repos"))
user = tests.FakeUser()
with tests.user_set(self.app.application, user):
- output = self.app.get('/new/')
+ output = self.app.get("/new/")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('Create new Project', output_text)
+ self.assertIn("Create new Project", output_text)
csrf_token = output_text.split(
- 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
+ 'name="csrf_token" type="hidden" value="'
+ )[1].split('">')[0]
- output = self.app.post('/foo/regenerate')
+ output = self.app.post("/foo/regenerate")
self.assertEqual(output.status_code, 404)
- output = self.app.post('/test/regenerate')
+ output = self.app.post("/test/regenerate")
self.assertEqual(output.status_code, 403)
ast.return_value = True
- output = self.app.post('/test/regenerate')
+ output = self.app.post("/test/regenerate")
self.assertEqual(output.status_code, 302)
ast.return_value = False
- user.username = 'pingou'
+ user.username = "pingou"
with tests.user_set(self.app.application, user):
- output = self.app.post('/test/regenerate')
+ output = self.app.post("/test/regenerate")
self.assertEqual(output.status_code, 400)
- data = {'csrf_token': csrf_token}
+ data = {"csrf_token": csrf_token}
- output = self.app.post('/test/regenerate', data=data)
+ output = self.app.post("/test/regenerate", data=data)
self.assertEqual(output.status_code, 400)
- data['regenerate'] = 'ticket'
- output = self.app.post('/test/regenerate', data=data)
+ data["regenerate"] = "ticket"
+ output = self.app.post("/test/regenerate", data=data)
self.assertEqual(output.status_code, 400)
# Create an issue to play with
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
msg = pagure.lib.query.new_issue(
session=self.session,
repo=repo,
- title='Test issue',
- content='We should work on this',
- user='pingou',
+ title="Test issue",
+ content="We should work on this",
+ user="pingou",
)
self.session.commit()
- self.assertEqual(msg.title, 'Test issue')
+ self.assertEqual(msg.title, "Test issue")
- data['regenerate'] = 'tickets'
+ data["regenerate"] = "tickets"
output = self.app.post(
- '/test/regenerate', data=data, follow_redirects=True)
+ "/test/regenerate", data=data, follow_redirects=True
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- 'Tickets git repo updated',
- output_text)
+ self.assertIn("Tickets git repo updated", output_text)
# Create a request to play with
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
msg = pagure.lib.query.new_pull_request(
session=self.session,
repo_from=repo,
- branch_from='branch',
+ branch_from="branch",
repo_to=repo,
- branch_to='master',
- title='Test pull-request',
- user='pingou',
+ branch_to="master",
+ title="Test pull-request",
+ user="pingou",
)
self.session.commit()
- self.assertEqual(msg.title, 'Test pull-request')
+ self.assertEqual(msg.title, "Test pull-request")
- data['regenerate'] = 'requests'
+ data["regenerate"] = "requests"
output = self.app.post(
- '/test/regenerate', data=data, follow_redirects=True)
+ "/test/regenerate", data=data, follow_redirects=True
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- 'Requests git repo updated',
- output_text)
+ self.assertIn("Requests git repo updated", output_text)
def test_view_tags(self):
""" Test the view_tags endpoint. """
- output = self.app.get('/foo/releases')
+ output = self.app.get("/foo/releases")
# No project registered in the DB
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- output = self.app.get('/test/releases')
+ output = self.app.get("/test/releases")
# No git repo associated
self.assertEqual(output.status_code, 404)
- tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- output = self.app.get('/test/releases')
+ output = self.app.get("/test/releases")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('This project has not been tagged.', output_text)
+ self.assertIn("This project has not been tagged.", output_text)
# Add a README to the git repo - First commit
- tests.add_readme_git_repo(os.path.join(self.path, 'repos', 'test.git'))
- repo = pygit2.Repository(os.path.join(self.path, 'repos', 'test.git'))
- first_commit = repo.revparse_single('HEAD')
- tagger = pygit2.Signature('Alice Doe', 'adoe@example.com', 12347, 0)
+ tests.add_readme_git_repo(os.path.join(self.path, "repos", "test.git"))
+ repo = pygit2.Repository(os.path.join(self.path, "repos", "test.git"))
+ first_commit = repo.revparse_single("HEAD")
+ tagger = pygit2.Signature("Alice Doe", "adoe@example.com", 12347, 0)
repo.create_tag(
- "0.0.1", first_commit.oid.hex, pygit2.GIT_OBJ_COMMIT, tagger,
- "Release 0.0.1")
+ "0.0.1",
+ first_commit.oid.hex,
+ pygit2.GIT_OBJ_COMMIT,
+ tagger,
+ "Release 0.0.1",
+ )
- output = self.app.get('/test/releases')
+ output = self.app.get("/test/releases")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn('0.0.1', output_text)
+ self.assertIn("0.0.1", output_text)
self.assertIn('', output_text)
self.assertEqual(
- output_text.count(''),
- 1)
+ output_text.count(
+ ''
+ ),
+ 1,
+ )
def test_edit_file_no_signed_off(self):
""" Test the edit_file endpoint when signed-off isn't enforced. """
tests.create_projects(self.session)
- tests.create_projects_git(
- os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
user = tests.FakeUser()
- user.username = 'pingou'
+ user.username = "pingou"
with tests.user_set(self.app.application, user):
# Add some content to the git repo
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'test.git'))
+ os.path.join(self.path, "repos", "test.git")
+ )
- output = self.app.get('/test/edit/master/f/sources')
+ output = self.app.get("/test/edit/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
''
' master'
' sources',
- output_text)
+ output_text,
+ )
self.assertIn(
'',
- output_text)
+ output_text,
+ )
self.assertIn(
'', output_text
+ "",
+ output_text,
)
def test_edit_file_signed_off(self):
""" Test the edit_file endpoint when signed-off is enforced. """
tests.create_projects(self.session)
- tests.create_projects_git(
- os.path.join(self.path, 'repos'), bare=True)
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(self.session, "test")
settings = repo.settings
- settings['Enforce_signed-off_commits_in_pull-request'] = True
+ settings["Enforce_signed-off_commits_in_pull-request"] = True
repo.settings = settings
self.session.add(repo)
self.session.commit()
user = tests.FakeUser()
- user.username = 'pingou'
+ user.username = "pingou"
with tests.user_set(self.app.application, user):
# Add some content to the git repo
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'test.git'))
+ os.path.join(self.path, "repos", "test.git")
+ )
- output = self.app.get('/test/edit/master/f/sources')
+ output = self.app.get("/test/edit/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
''
' master'
' sources',
- output_text)
+ output_text,
+ )
self.assertIn(
'',
- output_text)
+ output_text,
+ )
self.assertIn(
'', output_text
+ "Signed-off-by: pingou ",
+ output_text,
)
def test_edit_file(self):
""" Test the edit_file endpoint. """
# No Git repo
- output = self.app.get('/foo/edit/foo/f/sources')
+ output = self.app.get("/foo/edit/foo/f/sources")
self.assertEqual(output.status_code, 404)
user = tests.FakeUser()
with tests.user_set(self.app.application, user):
# No project registered in the DB
- output = self.app.get('/foo/edit/foo/f/sources')
+ output = self.app.get("/foo/edit/foo/f/sources")
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- tests.create_projects_git(os.path.join(self.path, 'repos'),
- bare=True)
+ tests.create_projects_git(
+ os.path.join(self.path, "repos"), bare=True
+ )
# No a repo admin
- output = self.app.get('/test/edit/foo/f/sources')
+ output = self.app.get("/test/edit/foo/f/sources")
self.assertEqual(output.status_code, 403)
# User not logged in
- output = self.app.get('/test/edit/foo/f/sources')
+ output = self.app.get("/test/edit/foo/f/sources")
self.assertEqual(output.status_code, 302)
- user.username = 'pingou'
+ user.username = "pingou"
with tests.user_set(self.app.application, user):
# No such file
- output = self.app.get('/test/edit/foo/f/sources')
+ output = self.app.get("/test/edit/foo/f/sources")
self.assertEqual(output.status_code, 404)
# Add some content to the git repo
- tests.add_content_git_repo(os.path.join(self.path, 'repos',
- 'test.git'))
- tests.add_readme_git_repo(os.path.join(self.path, 'repos',
- 'test.git'))
+ tests.add_content_git_repo(
+ os.path.join(self.path, "repos", "test.git")
+ )
+ tests.add_readme_git_repo(
+ os.path.join(self.path, "repos", "test.git")
+ )
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test.jpg')
+ os.path.join(self.path, "repos", "test.git"), "test.jpg"
+ )
tests.add_binary_git_repo(
- os.path.join(self.path, 'repos', 'test.git'), 'test_binary')
+ os.path.join(self.path, "repos", "test.git"), "test_binary"
+ )
- output = self.app.get('/test/edit/master/foofile')
+ output = self.app.get("/test/edit/master/foofile")
self.assertEqual(output.status_code, 404)
# Edit page
- output = self.app.get('/test/edit/master/f/sources')
+ output = self.app.get("/test/edit/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
''
' master'
' sources',
- output_text)
+ output_text,
+ )
self.assertIn(
'',
- output_text)
+ output_text,
+ )
# Verify the nav links correctly when editing a file.
- output = self.app.get('/test/blob/master/f/folder1/folder2/file')
+ output = self.app.get("/test/blob/master/f/folder1/folder2/file")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
''
'\n folder2\n'
- ' ', output_text)
+ " ",
+ output_text,
+ )
csrf_token = output_text.split(
- 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
+ 'name="csrf_token" type="hidden" value="'
+ )[1].split('">')[0]
# View what's supposed to be an image
- output = self.app.get('/test/edit/master/f/test.jpg')
+ output = self.app.get("/test/edit/master/f/test.jpg")
self.assertEqual(output.status_code, 400)
output_text = output.get_data(as_text=True)
- self.assertIn('Cannot edit binary files ', output_text)
+ self.assertIn("Cannot edit binary files ", output_text)
# Check file before the commit:
- output = self.app.get('/test/raw/master/f/sources')
+ output = self.app.get("/test/raw/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertEqual(output_text, 'foo\n bar')
+ self.assertEqual(output_text, "foo\n bar")
# No CSRF Token
data = {
- 'content': 'foo\n bar\n baz',
- 'commit_title': 'test commit',
- 'commit_message': 'Online commits from the gure.lib.get',
+ "content": "foo\n bar\n baz",
+ "commit_title": "test commit",
+ "commit_message": "Online commits from the gure.lib.get",
}
- output = self.app.post('/test/edit/master/f/sources', data=data)
+ output = self.app.post("/test/edit/master/f/sources", data=data)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- 'Edit - test - Pagure', output_text)
+ self.assertIn("Edit - test - Pagure", output_text)
# Check that nothing changed
- output = self.app.get('/test/raw/master/f/sources')
+ output = self.app.get("/test/raw/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertEqual(output_text, 'foo\n bar')
+ self.assertEqual(output_text, "foo\n bar")
# Missing email
- data['csrf_token'] = csrf_token
- output = self.app.post('/test/edit/master/f/sources', data=data)
+ data["csrf_token"] = csrf_token
+ output = self.app.post("/test/edit/master/f/sources", data=data)
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertIn(
- 'Edit - test - Pagure', output_text)
+ self.assertIn("Edit - test - Pagure", output_text)
# Invalid email
- data['email'] = 'pingou@fp.o'
- output = self.app.post('/test/edit/master/f/sources', data=data)
+ data["email"] = "pingou@fp.o"
+ output = self.app.post("/test/edit/master/f/sources", data=data)
output_text = output.get_data(as_text=True)
- self.assertIn(
- 'Edit - test - Pagure', output_text)
+ self.assertIn("Edit - test - Pagure", output_text)
# Works
- data['email'] = 'bar@pingou.com'
- data['branch'] = 'master'
+ data["email"] = "bar@pingou.com"
+ data["branch"] = "master"
output = self.app.post(
- '/test/edit/master/f/sources', data=data,
- follow_redirects=True)
+ "/test/edit/master/f/sources", data=data, follow_redirects=True
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- 'Commits - test - Pagure', output_text)
- self.assertIn('test commit', output_text)
+ "Commits - test - Pagure", output_text
+ )
+ self.assertIn("test commit", output_text)
# Check file after the commit:
- output = self.app.get('/test/raw/master/f/sources')
+ output = self.app.get("/test/raw/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
- self.assertEqual(output_text, 'foo\n bar\n baz')
+ self.assertEqual(output_text, "foo\n bar\n baz")
# Add a fork of a fork
item = pagure.lib.model.Project(
user_id=1, # pingou
- name='test3',
- description='test project #3',
+ name="test3",
+ description="test project #3",
is_fork=True,
parent_id=1,
- hook_token='aaabbbppp',
+ hook_token="aaabbbppp",
)
self.session.add(item)
self.session.commit()
tests.add_content_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'))
+ os.path.join(
+ self.path, "repos", "forks", "pingou", "test3.git"
+ )
+ )
tests.add_readme_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'))
+ os.path.join(
+ self.path, "repos", "forks", "pingou", "test3.git"
+ )
+ )
tests.add_commit_git_repo(
- os.path.join(self.path, 'repos', 'forks', 'pingou', 'test3.git'),
- ncommits=10)
+ os.path.join(
+ self.path, "repos", "forks", "pingou", "test3.git"
+ ),
+ ncommits=10,
+ )
# Verify the nav links correctly when editing a file in a fork.
output = self.app.get(
- '/fork/pingou/test3/edit/master/f/folder1/folder2/file')
+ "/fork/pingou/test3/edit/master/f/folder1/folder2/file"
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
' folder2\n'
- ' ', output_text)
+ " ",
+ output_text,
+ )
- output = self.app.get('/fork/pingou/test3/edit/master/f/sources')
+ output = self.app.get("/fork/pingou/test3/edit/master/f/sources")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
@@ -4721,260 +5262,283 @@ index 0000000..fb7093d
''
' master'
' sources',
- output_text)
+ output_text,
+ )
self.assertIn(
' | |
Test Initial Comment
', - output_text) - self.assertEqual( - output_text.count('title="PY C (pingou)"'), - 2) + "Test Initial Comment
", output_text) + self.assertEqual(output_text.count('title="PY C (pingou)"'), 2) - @patch('pagure.lib.notify.send_email') + @patch("pagure.lib.notify.send_email") def test_new_request_pull_req_sign_off_view(self, send_email): """ Test the new_request_pull endpoint. """ send_email.return_value = True @@ -2581,43 +2824,57 @@ More information self.test_fork_project() tests.create_projects_git( - os.path.join(self.path, 'requests'), bare=True) + os.path.join(self.path, "requests"), bare=True + ) - repo = pagure.lib.query.get_authorized_project(self.session, 'test') - fork = pagure.lib.query.get_authorized_project(self.session, 'test', user='foo') + repo = pagure.lib.query.get_authorized_project(self.session, "test") + fork = pagure.lib.query.get_authorized_project( + self.session, "test", user="foo" + ) # Enforce Signed-of-by in the repo settings = repo.settings - settings['Enforce_signed-off_commits_in_pull-request'] = True + settings["Enforce_signed-off_commits_in_pull-request"] = True repo.settings = settings self.session.add(repo) self.session.commit() set_up_git_repo( - self.session, self.path, new_project=fork, - branch_from='feature', mtype='FF') + self.session, + self.path, + new_project=fork, + branch_from="feature", + mtype="FF", + ) user = tests.FakeUser() - user.username = 'foo' + user.username = "foo" with tests.user_set(self.app.application, user): - output = self.app.get('/test/diff/master..feature') + output = self.app.get("/test/diff/master..feature") self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - 'Test Initial Comment
', output_text) + "Test Initial Comment
", output_text) # Check if commit start and stop have been set for PR#2 request = pagure.lib.query.search_pull_requests( - self.session, project_id=1, requestid=2) + self.session, project_id=1, requestid=2 + ) self.assertIsNotNone(request.commit_start) self.assertIsNotNone(request.commit_stop) - @patch('pagure.lib.notify.send_email') + @patch("pagure.lib.notify.send_email") def test_new_request_pull_from_fork_branch(self, send_email): """ Test creating a fork to fork PR. """ send_email.return_value = True # Create main repo with some content tests.create_projects(self.session) - tests.create_projects_git( - os.path.join(self.path, "repos"), - bare=True - ) + tests.create_projects_git(os.path.join(self.path, "repos"), bare=True) tests.add_content_git_repo( - os.path.join(self.path, "repos", "test.git")) + os.path.join(self.path, "repos", "test.git") + ) # Create fork repo with more content tests.create_projects( - self.session, - is_fork=True, - hook_token_suffix='fork') + self.session, is_fork=True, hook_token_suffix="fork" + ) tests.create_projects_git( - os.path.join(self.path, "repos", "forks", "pingou"), - bare=True + os.path.join(self.path, "repos", "forks", "pingou"), bare=True ) tests.add_content_git_repo( - os.path.join(self.path, "repos", "forks", "pingou", "test.git")) + os.path.join(self.path, "repos", "forks", "pingou", "test.git") + ) tests.add_readme_git_repo( os.path.join(self.path, "repos", "forks", "pingou", "test.git"), - branch='feature') + branch="feature", + ) tests.add_readme_git_repo( os.path.join(self.path, "repos", "forks", "pingou", "test.git"), - branch='random_branch') + branch="random_branch", + ) - user = tests.FakeUser(username='pingou') + user = tests.FakeUser(username="pingou") with tests.user_set(self.app.application, user): - data = { - 'csrf_token': self.get_csrf(), - } + data = {"csrf_token": self.get_csrf()} output = self.app.post( - '/do_fork/test', data=data, - follow_redirects=True) + "/do_fork/test", data=data, follow_redirects=True + ) self.assertEqual(output.status_code, 200) # Check that Ralph's fork do exist - output = self.app.get('/fork/pingou/test') + output = self.app.get("/fork/pingou/test") self.assertEqual(output.status_code, 200) tests.create_projects_git( - os.path.join(self.path, 'requests'), bare=True) + os.path.join(self.path, "requests"), bare=True + ) fork = pagure.lib.query.get_authorized_project( - self.session, 'test', user='ralph') + self.session, "test", user="ralph" + ) set_up_git_repo( - self.session, self.path, new_project=fork, - branch_from='feature', mtype='FF') + self.session, + self.path, + new_project=fork, + branch_from="feature", + mtype="FF", + ) # Try opening a pull-request - output = self.app.get( - '/fork/pingou/test/diff/master..feature') + output = self.app.get("/fork/pingou/test/diff/master..feature") self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - 'Test Initial Comment
\nFixes Test Initial Comment
\nFixes # Create a 3rd user item = pagure.lib.model.User( - user='ralph', - fullname='Ralph bar', - password='ralph_foo', - default_email='ralph@bar.com', + user="ralph", + fullname="Ralph bar", + password="ralph_foo", + default_email="ralph@bar.com", ) self.session.add(item) - item = pagure.lib.model.UserEmail( - user_id=3, - email='ralph@bar.com') + item = pagure.lib.model.UserEmail(user_id=3, email="ralph@bar.com") self.session.add(item) self.session.commit() user = tests.FakeUser() - user.username = 'ralph' + user.username = "ralph" with tests.user_set(self.app.application, user): # Have Ralph fork, foo's fork of test - output = self.app.get('/fork/foo/test') + output = self.app.get("/fork/foo/test") self.assertEqual(output.status_code, 200) - output = self.app.post('/do_fork/fork/foo/test') + output = self.app.post("/do_fork/fork/foo/test") self.assertEqual(output.status_code, 400) csrf_token = self.get_csrf() - data = { - 'csrf_token': csrf_token, - } + data = {"csrf_token": csrf_token} output = self.app.post( - '/do_fork/fork/foo/test', data=data, - follow_redirects=True) + "/do_fork/fork/foo/test", data=data, follow_redirects=True + ) self.assertEqual(output.status_code, 200) # Check that Ralph's fork do exist - output = self.app.get('/fork/ralph/test') + output = self.app.get("/fork/ralph/test") self.assertEqual(output.status_code, 200) tests.create_projects_git( - os.path.join(self.path, 'requests'), bare=True) + os.path.join(self.path, "requests"), bare=True + ) fork = pagure.lib.query.get_authorized_project( - self.session, 'test', user='ralph') + self.session, "test", user="ralph" + ) set_up_git_repo( - self.session, self.path, new_project=fork, - branch_from='feature', mtype='FF') + self.session, + self.path, + new_project=fork, + branch_from="feature", + mtype="FF", + ) # Try opening a pull-request - output = self.app.get( - '/fork/ralph/test/diff/master..feature') + output = self.app.get("/fork/ralph/test/diff/master..feature") self.assertEqual(output.status_code, 404) self.assertIn( - 'Create new Pull Request for master - fork/ralph/test\n - '
- 'Pagure ', output_text)
+ "Create new Pull Request for master - fork/ralph/test\n - "
+ "Pagure ",
+ output_text,
+ )
self.assertIn(
'\n',
- output_text)
+ output_text,
+ )
csrf_token = self.get_csrf(output=output)
# Case 1 - Add an initial comment
data = {
- 'csrf_token': csrf_token,
- 'title': 'foo bar PR',
- 'initial_comment': 'Test Initial Comment',
+ "csrf_token": csrf_token,
+ "title": "foo bar PR",
+ "initial_comment": "Test Initial Comment",
}
output = self.app.post(
- '/fork/ralph/test/diff/master..feature',
- data=data, follow_redirects=True)
+ "/fork/ralph/test/diff/master..feature",
+ data=data,
+ follow_redirects=True,
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- 'PR#1: foo bar PR - fork/foo/test\n - Pagure ',
- output_text)
- self.assertIn('PR#1: foo bar PR - fork/foo/test\n - Pagure ",
+ output_text,
+ )
+ self.assertIn("Create new Pull Request for master - fork/ralph/test\n - '
- 'Pagure ', output_text)
+ "Create new Pull Request for master - fork/ralph/test\n - "
+ "Pagure ",
+ output_text,
+ )
self.assertIn(
'\n',
- output_text)
+ output_text,
+ )
csrf_token = self.get_csrf(output=output)
# Case 1 - Opening PR to fork/foo/test
data = {
- 'csrf_token': csrf_token,
- 'title': 'foo bar PR',
- 'initial_comment': 'Test Initial Comment',
+ "csrf_token": csrf_token,
+ "title": "foo bar PR",
+ "initial_comment": "Test Initial Comment",
}
output = self.app.post(
- '/fork/ralph/test/diff/master..feature?project_to=fork/foo/test',
- data=data, follow_redirects=True)
+ "/fork/ralph/test/diff/master..feature?project_to=fork/foo/test",
+ data=data,
+ follow_redirects=True,
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- 'PR#1: foo bar PR - fork/foo/test\n - Pagure ',
- output_text)
- self.assertIn('PR#1: foo bar PR - fork/foo/test\n - Pagure ",
+ output_text,
+ )
+ self.assertIn("PR#4: foo bar PR - test\n - Pagure ',
- output_text)
- self.assertIn('PR#4: foo bar PR - test\n - Pagure ",
+ output_text,
+ )
+ self.assertIn("
", + output.get_data(as_text=True), + ) - @patch('pagure.lib.notify.send_email') + @patch("pagure.lib.notify.send_email") def test_new_request_pull_empty_repo(self, send_email): """ Test the new_request_pull endpoint against an empty repo. """ send_email.return_value = True @@ -3301,49 +3659,54 @@ More information self.test_fork_project() tests.create_projects_git( - os.path.join(self.path, 'requests'), bare=True) + os.path.join(self.path, "requests"), bare=True + ) - repo = pagure.lib.query.get_authorized_project(self.session, 'test') - fork = pagure.lib.query.get_authorized_project(self.session, 'test', user='foo') + repo = pagure.lib.query.get_authorized_project(self.session, "test") + fork = pagure.lib.query.get_authorized_project( + self.session, "test", user="foo" + ) # Create a git repo to play with - gitrepo = os.path.join(self.path, 'repos', 'test.git') + gitrepo = os.path.join(self.path, "repos", "test.git") repo = pygit2.init_repository(gitrepo, bare=True) # Create a fork of this repo - newpath = tempfile.mkdtemp(prefix='pagure-fork-test') - gitrepo = os.path.join(self.path, 'repos', 'forks', 'foo', 'test.git') + newpath = tempfile.mkdtemp(prefix="pagure-fork-test") + gitrepo = os.path.join(self.path, "repos", "forks", "foo", "test.git") new_repo = pygit2.clone_repository(gitrepo, newpath) user = tests.FakeUser() - user.username = 'foo' + user.username = "foo" with tests.user_set(self.app.application, user): output = self.app.get( - '/fork/foo/test/diff/master..feature', - follow_redirects=True) + "/fork/foo/test/diff/master..feature", follow_redirects=True + ) self.assertEqual(output.status_code, 400) self.assertIn( - 'No pull-request allowed on this project
', - output.get_data(as_text=True)) + "No pull-request allowed on this project
", + output.get_data(as_text=True), + ) - @patch('pagure.lib.notify.send_email') + @patch("pagure.lib.notify.send_email") def test_new_request_pull_fork_to_fork(self, send_email): """ Test creating a fork to fork PR. """ send_email.return_value = True @@ -3011,99 +3320,113 @@ More information # Create a 3rd user item = pagure.lib.model.User( - user='ralph', - fullname='Ralph bar', - password='ralph_foo', - default_email='ralph@bar.com', + user="ralph", + fullname="Ralph bar", + password="ralph_foo", + default_email="ralph@bar.com", ) self.session.add(item) - item = pagure.lib.model.UserEmail( - user_id=3, - email='ralph@bar.com') + item = pagure.lib.model.UserEmail(user_id=3, email="ralph@bar.com") self.session.add(item) self.session.commit() user = tests.FakeUser() - user.username = 'ralph' + user.username = "ralph" with tests.user_set(self.app.application, user): # Have Ralph fork, foo's fork of test - output = self.app.get('/fork/foo/test') + output = self.app.get("/fork/foo/test") self.assertEqual(output.status_code, 200) - output = self.app.post('/do_fork/fork/foo/test') + output = self.app.post("/do_fork/fork/foo/test") self.assertEqual(output.status_code, 400) csrf_token = self.get_csrf() - data = { - 'csrf_token': csrf_token, - } + data = {"csrf_token": csrf_token} output = self.app.post( - '/do_fork/fork/foo/test', data=data, - follow_redirects=True) + "/do_fork/fork/foo/test", data=data, follow_redirects=True + ) self.assertEqual(output.status_code, 200) # Check that Ralph's fork do exist - output = self.app.get('/fork/ralph/test') + output = self.app.get("/fork/ralph/test") self.assertEqual(output.status_code, 200) tests.create_projects_git( - os.path.join(self.path, 'requests'), bare=True) + os.path.join(self.path, "requests"), bare=True + ) # Turn on pull-request on the fork repo = pagure.lib.query.get_authorized_project( - self.session, 'test', user='foo') + self.session, "test", user="foo" + ) settings = repo.settings - settings['pull_requests'] = True + settings["pull_requests"] = True repo.settings = settings self.session.add(repo) self.session.commit() # Add some content to the parent set_up_git_repo( - self.session, self.path, new_project=repo, - branch_from='master', mtype='FF', name_from=repo.fullname) + self.session, + self.path, + new_project=repo, + branch_from="master", + mtype="FF", + name_from=repo.fullname, + ) fork = pagure.lib.query.get_authorized_project( - self.session, 'test', user='ralph') + self.session, "test", user="ralph" + ) set_up_git_repo( - self.session, self.path, new_project=fork, - branch_from='feature', mtype='FF', prid=2, - name_from=fork.fullname) + self.session, + self.path, + new_project=fork, + branch_from="feature", + mtype="FF", + prid=2, + name_from=fork.fullname, + ) # Try opening a pull-request - output = self.app.get( - '/fork/ralph/test/diff/master..feature') + output = self.app.get("/fork/ralph/test/diff/master..feature") self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - 'Test Initial Comment
', output_text) + "Test Initial Comment
", output_text) - @patch('pagure.lib.notify.send_email') + @patch("pagure.lib.notify.send_email") def test_new_request_pull_fork_to_other_fork(self, send_email): """ Test creating a PR from fork to a fork of the same family. """ send_email.return_value = True @@ -3112,107 +3435,130 @@ More information # Create a 3rd user item = pagure.lib.model.User( - user='ralph', - fullname='Ralph bar', - password='ralph_foo', - default_email='ralph@bar.com', + user="ralph", + fullname="Ralph bar", + password="ralph_foo", + default_email="ralph@bar.com", ) self.session.add(item) - item = pagure.lib.model.UserEmail( - user_id=3, - email='ralph@bar.com') + item = pagure.lib.model.UserEmail(user_id=3, email="ralph@bar.com") self.session.add(item) self.session.commit() user = tests.FakeUser() - user.username = 'ralph' + user.username = "ralph" with tests.user_set(self.app.application, user): csrf_token = self.get_csrf() - data = { - 'csrf_token': csrf_token, - } + data = {"csrf_token": csrf_token} output = self.app.post( - '/do_fork/test', data=data, - follow_redirects=True) + "/do_fork/test", data=data, follow_redirects=True + ) self.assertEqual(output.status_code, 200) # Check that Ralph's fork do exist - output = self.app.get('/fork/ralph/test') + output = self.app.get("/fork/ralph/test") self.assertEqual(output.status_code, 200) tests.create_projects_git( - os.path.join(self.path, 'requests'), bare=True) + os.path.join(self.path, "requests"), bare=True + ) # Turn on pull-request on the fork repo = pagure.lib.query.get_authorized_project( - self.session, 'test', user='foo') + self.session, "test", user="foo" + ) settings = repo.settings - settings['pull_requests'] = True + settings["pull_requests"] = True repo.settings = settings self.session.add(repo) self.session.commit() # Add some content to the parents set_up_git_repo( - self.session, self.path, new_project=repo, - branch_from='master', mtype='FF') + self.session, + self.path, + new_project=repo, + branch_from="master", + mtype="FF", + ) set_up_git_repo( - self.session, self.path, new_project=repo, - branch_from='master', mtype='FF', - name_from=repo.fullname, prid=2) + self.session, + self.path, + new_project=repo, + branch_from="master", + mtype="FF", + name_from=repo.fullname, + prid=2, + ) fork = pagure.lib.query.get_authorized_project( - self.session, 'test', user='ralph') + self.session, "test", user="ralph" + ) set_up_git_repo( - self.session, self.path, - new_project=fork, branch_from='feature', mtype='FF', - prid=3, name_from=fork.fullname) + self.session, + self.path, + new_project=fork, + branch_from="feature", + mtype="FF", + prid=3, + name_from=fork.fullname, + ) # Try opening a pull-request output = self.app.get( - '/fork/ralph/test/diff/master..feature?project_to=fork/foo/test') + "/fork/ralph/test/diff/master..feature?project_to=fork/foo/test" + ) self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - 'Test Initial Comment
', output_text) + "Test Initial Comment
", output_text) # Case 1 - Opening PR to parent repo, shows project_to works output = self.app.post( - '/fork/ralph/test/diff/master..feature', - data=data, follow_redirects=True) + "/fork/ralph/test/diff/master..feature", + data=data, + follow_redirects=True, + ) self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - 'Test Initial Comment
', output_text) + "Test Initial Comment
", output_text) - @patch('pagure.lib.notify.send_email') + @patch("pagure.lib.notify.send_email") def test_new_request_pull_fork_to_other_unrelated_fork(self, send_email): """ Test creating a PR from fork to fork that isn't from the same family. @@ -3223,77 +3569,89 @@ More information # Create a 3rd user item = pagure.lib.model.User( - user='ralph', - fullname='Ralph bar', - password='ralph_foo', - default_email='ralph@bar.com', + user="ralph", + fullname="Ralph bar", + password="ralph_foo", + default_email="ralph@bar.com", ) self.session.add(item) - item = pagure.lib.model.UserEmail( - user_id=3, - email='ralph@bar.com') + item = pagure.lib.model.UserEmail(user_id=3, email="ralph@bar.com") self.session.add(item) self.session.commit() user = tests.FakeUser() - user.username = 'ralph' + user.username = "ralph" with tests.user_set(self.app.application, user): csrf_token = self.get_csrf() - data = { - 'csrf_token': csrf_token, - } + data = {"csrf_token": csrf_token} output = self.app.post( - '/do_fork/test2', data=data, - follow_redirects=True) + "/do_fork/test2", data=data, follow_redirects=True + ) self.assertEqual(output.status_code, 200) # Check that Ralph's fork do exist - output = self.app.get('/fork/ralph/test2') + output = self.app.get("/fork/ralph/test2") self.assertEqual(output.status_code, 200) tests.create_projects_git( - os.path.join(self.path, 'requests'), bare=True) + os.path.join(self.path, "requests"), bare=True + ) # Turn on pull-request on the fork repo = pagure.lib.query.get_authorized_project( - self.session, 'test', user='foo') + self.session, "test", user="foo" + ) settings = repo.settings - settings['pull_requests'] = True + settings["pull_requests"] = True repo.settings = settings self.session.add(repo) self.session.commit() # Add some content to the parent set_up_git_repo( - self.session, self.path, - new_project=repo, branch_from='master', mtype='FF', - name_from=repo.fullname) + self.session, + self.path, + new_project=repo, + branch_from="master", + mtype="FF", + name_from=repo.fullname, + ) fork = pagure.lib.query.get_authorized_project( - self.session, 'test2', user='ralph') + self.session, "test2", user="ralph" + ) set_up_git_repo( - self.session, self.path, - new_project=fork, branch_from='feature', mtype='FF', - prid=2, name_from=fork.fullname) + self.session, + self.path, + new_project=fork, + branch_from="feature", + mtype="FF", + prid=2, + name_from=fork.fullname, + ) # Case 1 - Opening PR to fork/foo/test data = { - 'csrf_token': csrf_token, - 'title': 'foo bar PR', - 'initial_comment': 'Test Initial Comment', + "csrf_token": csrf_token, + "title": "foo bar PR", + "initial_comment": "Test Initial Comment", } output = self.app.post( - '/fork/ralph/test2/diff/master..feature?project_to=fork/foo/test', - data=data, follow_redirects=True) + "/fork/ralph/test2/diff/master..feature?project_to=fork/foo/test", + data=data, + follow_redirects=True, + ) self.assertEqual(output.status_code, 400) self.assertIn( "fork/foo/test is not part of fork/ralph/test2's " - "family
", output.get_data(as_text=True)) + "familyFork is empty, there are no commits to create a pull ' - 'request with
', output.get_data(as_text=True)) + "Fork is empty, there are no commits to create a pull " + "request with
", + output.get_data(as_text=True), + ) - output = self.app.get('/test/new_issue') + output = self.app.get("/test/new_issue") csrf_token = self.get_csrf(output=output) - data = { - 'csrf_token': csrf_token, - 'title': 'foo bar PR', - } + data = {"csrf_token": csrf_token, "title": "foo bar PR"} output = self.app.post( - '/test/diff/master..feature', data=data, follow_redirects=True) + "/test/diff/master..feature", data=data, follow_redirects=True + ) self.assertEqual(output.status_code, 400) self.assertIn( - 'Fork is empty, there are no commits to create a pull ' - 'request with
', output.get_data(as_text=True)) + "Fork is empty, there are no commits to create a pull " + "request with
", + output.get_data(as_text=True), + ) shutil.rmtree(newpath) - @patch('pagure.lib.notify.send_email') + @patch("pagure.lib.notify.send_email") def test_new_request_pull_empty_fork(self, send_email): """ Test the new_request_pull endpoint against an empty repo. """ send_email.return_value = True @@ -3351,34 +3714,39 @@ More information self.test_fork_project() tests.create_projects_git( - os.path.join(self.path, 'requests'), bare=True) + os.path.join(self.path, "requests"), bare=True + ) - repo = pagure.lib.query.get_authorized_project(self.session, 'test') - fork = pagure.lib.query.get_authorized_project(self.session, 'test', user='foo') + repo = pagure.lib.query.get_authorized_project(self.session, "test") + fork = pagure.lib.query.get_authorized_project( + self.session, "test", user="foo" + ) # Create a git repo to play with - gitrepo = os.path.join(self.path, 'repos', 'test.git') + gitrepo = os.path.join(self.path, "repos", "test.git") repo = pygit2.init_repository(gitrepo, bare=True) # Create a fork of this repo - newpath = tempfile.mkdtemp(prefix='pagure-fork-test') - gitrepo = os.path.join( - self.path, 'repos', 'forks', 'foo', 'test.git') + newpath = tempfile.mkdtemp(prefix="pagure-fork-test") + gitrepo = os.path.join(self.path, "repos", "forks", "foo", "test.git") new_repo = pygit2.clone_repository(gitrepo, newpath) user = tests.FakeUser() - user.username = 'foo' + user.username = "foo" with tests.user_set(self.app.application, user): output = self.app.get( - '/fork/foo/test/diff/master..master', follow_redirects=True) + "/fork/foo/test/diff/master..master", follow_redirects=True + ) self.assertEqual(output.status_code, 400) self.assertIn( - 'Fork is empty, there are no commits to create a pull ' - 'request with
', output.get_data(as_text=True)) + "Fork is empty, there are no commits to create a pull " + "request with
", + output.get_data(as_text=True), + ) shutil.rmtree(newpath) - @patch('pagure.lib.notify.send_email') + @patch("pagure.lib.notify.send_email") def test_pull_request_add_comment(self, send_email): """ Test the pull_request_add_comment endpoint. """ send_email.return_value = True @@ -3386,76 +3754,86 @@ More information self.test_request_pull() user = tests.FakeUser() - user.username = 'pingou' + user.username = "pingou" with tests.user_set(self.app.application, user): - output = self.app.post('/foo/pull-request/1/comment') + output = self.app.post("/foo/pull-request/1/comment") self.assertEqual(output.status_code, 404) - output = self.app.post('/test/pull-request/100/comment') + output = self.app.post("/test/pull-request/100/comment") self.assertEqual(output.status_code, 404) - output = self.app.post('/test/pull-request/1/comment') + output = self.app.post("/test/pull-request/1/comment") self.assertEqual(output.status_code, 200) self.assertTrue( - output.get_data(as_text=True).startswith('\nThis look alright but we can do better
', - output_text) + "This look alright but we can do better
", output_text + ) csrf_token = self.get_csrf(output=output) # Invalid comment id - data = { - 'csrf_token': csrf_token, - 'drop_comment': '10', - } + data = {"csrf_token": csrf_token, "drop_comment": "10"} output = self.app.post( - '/test/pull-request/1/comment/drop', data=data, - follow_redirects=True) + "/test/pull-request/1/comment/drop", + data=data, + follow_redirects=True, + ) self.assertEqual(output.status_code, 404) - data['drop_comment'] = '1' + data["drop_comment"] = "1" output = self.app.post( - '/test/pull-request/1/comment/drop', data=data, - follow_redirects=True) + "/test/pull-request/1/comment/drop", + data=data, + follow_redirects=True, + ) self.assertEqual(output.status_code, 403) - user.username = 'pingou' + user.username = "pingou" with tests.user_set(self.app.application, user): # Drop comment output = self.app.post( - '/test/pull-request/1/comment/drop', data=data, - follow_redirects=True) + "/test/pull-request/1/comment/drop", + data=data, + follow_redirects=True, + ) self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( @@ -3502,26 +3885,29 @@ More information '#1\n ' '\n ' - 'PR from the feature branch\n', - output_text) - self.assertIn( - 'Comment removed', - output_text) + "PR from the feature branch\n", + output_text, + ) + self.assertIn("Comment removed", output_text) # Project w/o pull-request - repo = pagure.lib.query.get_authorized_project(self.session, 'test') + repo = pagure.lib.query.get_authorized_project( + self.session, "test" + ) settings = repo.settings - settings['pull_requests'] = False + settings["pull_requests"] = False repo.settings = settings self.session.add(repo) self.session.commit() output = self.app.post( - '/test/pull-request/1/comment/drop', data=data, - follow_redirects=True) + "/test/pull-request/1/comment/drop", + data=data, + follow_redirects=True, + ) self.assertEqual(output.status_code, 404) - @patch('pagure.lib.notify.send_email') + @patch("pagure.lib.notify.send_email") def test_pull_request_edit_comment(self, send_email): """ Test the pull request edit comment endpoint """ send_email.return_value = True @@ -3529,31 +3915,36 @@ More information self.test_request_pull() user = tests.FakeUser() - user.username = 'pingou' + user.username = "pingou" with tests.user_set(self.app.application, user): # Repo 'foo' does not exist so it is verifying that condition - output = self.app.post('/foo/pull-request/1/comment/1/edit') + output = self.app.post("/foo/pull-request/1/comment/1/edit") self.assertEqual(output.status_code, 404) # Here no comment is present in the PR so its verifying that condition - output = self.app.post('/test/pull-request/100/comment/100/edit') + output = self.app.post("/test/pull-request/100/comment/100/edit") self.assertEqual(output.status_code, 404) - output = self.app.post('/test/pull-request/1/comment') + output = self.app.post("/test/pull-request/1/comment") self.assertEqual(output.status_code, 200) # Creating comment to play with self.assertTrue( - output.get_data(as_text=True).startswith('\nThis look alright but we can do better
', output_text) - output = self.app.get('/test/pull-request/1/comment/1/edit') + "This look alright but we can do better
", output_text + ) + output = self.app.get("/test/pull-request/1/comment/1/edit") self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn('This look alright but we can do better than this.
', output_text) + "This look alright but we can do better than this.
", + output_text, + ) self.assertIn( '\n\n '
'\n '
'#1\n '
'\n '
- 'PR from the feature branch\n',
- output_text)
+ "PR from the feature branch\n",
+ output_text,
+ )
# Checking if Edited by User is there or not
self.assertTrue(
- 'Edited just now by pingou '
+ "Edited just now by pingou " in output_text
+ or "Edited seconds ago by pingou "
in output_text
- or
- 'Edited seconds ago by pingou '
- in output_text)
- self.assertIn(
- 'Comment updated', output_text)
+ )
+ self.assertIn("Comment updated", output_text)
# Project w/o pull-request
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
settings = repo.settings
- settings['pull_requests'] = False
+ settings["pull_requests"] = False
repo.settings = settings
self.session.add(repo)
self.session.commit()
output = self.app.post(
- '/test/pull-request/1/comment/edit/1', data=data,
- follow_redirects=True)
+ "/test/pull-request/1/comment/edit/1",
+ data=data,
+ follow_redirects=True,
+ )
self.assertEqual(output.status_code, 404)
- @patch('pagure.lib.notify.send_email')
+ @patch("pagure.lib.notify.send_email")
def test_merge_request_pull_FF_w_merge_commit(self, send_email):
""" Test the merge_request_pull endpoint with a FF PR but with a
merge commit.
@@ -3635,87 +4035,97 @@ More information
user = tests.FakeUser()
with tests.user_set(self.app.application, user):
- output = self.app.get('/test/pull-request/1')
+ output = self.app.get("/test/pull-request/1")
self.assertEqual(output.status_code, 200)
csrf_token = self.get_csrf(output=output)
# No CSRF
output = self.app.post(
- '/test/pull-request/1/merge', data={}, follow_redirects=True)
+ "/test/pull-request/1/merge", data={}, follow_redirects=True
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- 'PR#1: PR from the feature branch - test\n - '
- 'Pagure ', output_text)
+ "PR#1: PR from the feature branch - test\n - "
+ "Pagure ",
+ output_text,
+ )
self.assertIn(
' ",
+ output_text,
+ )
self.assertIn(
'administered by pingou',
- output_text)
+ output_text,
+ )
# Working
data["username"] = "foo"
output = self.app.post(
- '/group/test_group/give', data=data, follow_redirects=True)
+ "/group/test_group/give", data=data, follow_redirects=True
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- 'Group test_group - Pagure ', output_text)
- self.assertIn(' Group given
\n\n '
'\n '
'#1\n '
'\n '
- 'PR from the feature branch\n', output_text)
+ "PR from the feature branch\n",
+ output_text,
+ )
self.assertIn(
- 'title="View file as of 2a552b">sources', output_text)
+ 'title="View file as of 2a552b">sources', output_text
+ )
# Wrong project
- data = {
- 'csrf_token': csrf_token,
- }
+ data = {"csrf_token": csrf_token}
output = self.app.post(
- '/foobar/pull-request/100/merge', data=data, follow_redirects=True)
+ "/foobar/pull-request/100/merge",
+ data=data,
+ follow_redirects=True,
+ )
self.assertEqual(output.status_code, 404)
# Wrong project
- data = {
- 'csrf_token': csrf_token,
- }
+ data = {"csrf_token": csrf_token}
output = self.app.post(
- '/test/pull-request/1/merge', data=data, follow_redirects=True)
+ "/test/pull-request/1/merge", data=data, follow_redirects=True
+ )
self.assertEqual(output.status_code, 403)
- user.username = 'pingou'
+ user.username = "pingou"
with tests.user_set(self.app.application, user):
# Wrong request id
- data = {
- 'csrf_token': csrf_token,
- }
+ data = {"csrf_token": csrf_token}
output = self.app.post(
- '/test/pull-request/100/merge', data=data, follow_redirects=True)
+ "/test/pull-request/100/merge",
+ data=data,
+ follow_redirects=True,
+ )
self.assertEqual(output.status_code, 404)
# Project requiring a merge commit
- repo = pagure.lib.query.get_authorized_project(self.session, 'test')
+ repo = pagure.lib.query.get_authorized_project(
+ self.session, "test"
+ )
settings = repo.settings
- settings['always_merge'] = True
+ settings["always_merge"] = True
repo.settings = settings
self.session.add(repo)
self.session.commit()
# Merge
output = self.app.post(
- '/test/pull-request/1/merge', data=data, follow_redirects=True)
+ "/test/pull-request/1/merge", data=data, follow_redirects=True
+ )
self.assertEqual(output.status_code, 200)
- output = self.app.get('/test/commits')
+ output = self.app.get("/test/commits")
output_text = output.get_data(as_text=True)
self.assertIn(
- 'Commits - test - Pagure ', output_text)
- self.assertIn(
- 'Merge #1 `PR from the feature branch`', output_text)
- self.assertIn(
- 'A commit on branch feature', output_text)
+ "Commits - test - Pagure ", output_text
+ )
+ self.assertIn("Merge #1 `PR from the feature branch`", output_text)
+ self.assertIn("A commit on branch feature", output_text)
# Check if the closing notification was added
- output = self.app.get('/test/pull-request/1')
+ output = self.app.get("/test/pull-request/1")
self.assertIn(
'Merged just now\n'
- ' \n by\n'
+ " \n by\n"
' pingou.\n',
- output.get_data(as_text=True))
+ output.get_data(as_text=True),
+ )
- @patch('pagure.lib.notify.send_email')
+ @patch("pagure.lib.notify.send_email")
def test_internal_endpoint_main_ahead(self, send_email):
""" Test the new_request_pull endpoint when the main repo is ahead
of the fork.
@@ -3724,391 +4134,447 @@ More information
tests.create_projects(self.session)
tests.create_projects_git(
- os.path.join(self.path, 'requests'), bare=True)
+ os.path.join(self.path, "requests"), bare=True
+ )
set_up_git_repo(
- self.session, self.path, new_project=None, branch_from='feature')
+ self.session, self.path, new_project=None, branch_from="feature"
+ )
- gitrepo = os.path.join(self.path, 'repos', 'test.git')
+ gitrepo = os.path.join(self.path, "repos", "test.git")
repo = pygit2.init_repository(gitrepo, bare=True)
# Make the main repo be ahead of the fork
# First commit
- newpath = tempfile.mkdtemp(prefix='pagure-test')
- repopath = os.path.join(newpath, 'test')
+ newpath = tempfile.mkdtemp(prefix="pagure-test")
+ repopath = os.path.join(newpath, "test")
clone_repo = pygit2.clone_repository(gitrepo, repopath)
# Create a file in that git repo
- with open(os.path.join(repopath, 'testfile'), 'w') as stream:
- stream.write('foo\n bar')
- clone_repo.index.add('testfile')
+ with open(os.path.join(repopath, "testfile"), "w") as stream:
+ stream.write("foo\n bar")
+ clone_repo.index.add("testfile")
clone_repo.index.write()
# Commits the files added
- last_commit = clone_repo.revparse_single('HEAD')
+ last_commit = clone_repo.revparse_single("HEAD")
tree = clone_repo.index.write_tree()
- author = pygit2.Signature(
- 'Alice Author', 'alice@authors.tld')
- committer = pygit2.Signature(
- 'Cecil Committer', 'cecil@committers.tld')
+ author = pygit2.Signature("Alice Author", "alice@authors.tld")
+ committer = pygit2.Signature("Cecil Committer", "cecil@committers.tld")
clone_repo.create_commit(
- 'refs/heads/master', # the name of the reference to update
+ "refs/heads/master", # the name of the reference to update
author,
committer,
- 'Add testfile file for testing',
+ "Add testfile file for testing",
# binary string representing the tree object ID
tree,
# list of binary strings representing parents of the new commit
- [last_commit.oid.hex]
+ [last_commit.oid.hex],
)
# Second commit
- with open(os.path.join(repopath, 'testfile'), 'a') as stream:
- stream.write('\nfoo2\n bar2')
- clone_repo.index.add('testfile')
+ with open(os.path.join(repopath, "testfile"), "a") as stream:
+ stream.write("\nfoo2\n bar2")
+ clone_repo.index.add("testfile")
clone_repo.index.write()
# Commits the files added
- last_commit = clone_repo.revparse_single('HEAD')
+ last_commit = clone_repo.revparse_single("HEAD")
tree = clone_repo.index.write_tree()
- author = pygit2.Signature(
- 'Alice Author', 'alice@authors.tld')
- committer = pygit2.Signature(
- 'Cecil Committer', 'cecil@committers.tld')
+ author = pygit2.Signature("Alice Author", "alice@authors.tld")
+ committer = pygit2.Signature("Cecil Committer", "cecil@committers.tld")
clone_repo.create_commit(
- 'refs/heads/master', # the name of the reference to update
+ "refs/heads/master", # the name of the reference to update
author,
committer,
- 'Add a second commit to testfile for testing',
+ "Add a second commit to testfile for testing",
# binary string representing the tree object ID
tree,
# list of binary strings representing parents of the new commit
- [last_commit.oid.hex]
+ [last_commit.oid.hex],
)
# Third commit
- with open(os.path.join(repopath, 'testfile'), 'a') as stream:
- stream.write('\nfoo3\n bar3')
- clone_repo.index.add('testfile')
+ with open(os.path.join(repopath, "testfile"), "a") as stream:
+ stream.write("\nfoo3\n bar3")
+ clone_repo.index.add("testfile")
clone_repo.index.write()
# Commits the files added
- last_commit = clone_repo.revparse_single('HEAD')
+ last_commit = clone_repo.revparse_single("HEAD")
tree = clone_repo.index.write_tree()
- author = pygit2.Signature(
- 'Alice Author', 'alice@authors.tld')
- committer = pygit2.Signature(
- 'Cecil Committer', 'cecil@committers.tld')
+ author = pygit2.Signature("Alice Author", "alice@authors.tld")
+ committer = pygit2.Signature("Cecil Committer", "cecil@committers.tld")
clone_repo.create_commit(
- 'refs/heads/master', # the name of the reference to update
+ "refs/heads/master", # the name of the reference to update
author,
committer,
- 'Add a third commit to testfile for testing',
+ "Add a third commit to testfile for testing",
# binary string representing the tree object ID
tree,
# list of binary strings representing parents of the new commit
- [last_commit.oid.hex]
+ [last_commit.oid.hex],
)
- refname = 'refs/heads/master:refs/heads/master'
+ refname = "refs/heads/master:refs/heads/master"
ori_remote = clone_repo.remotes[0]
PagureRepo.push(ori_remote, refname)
shutil.rmtree(newpath)
user = tests.FakeUser()
- user.username = 'foo'
+ user.username = "foo"
with tests.user_set(self.app.application, user):
csrf_token = self.get_csrf()
output = self.app.post(
- '/pv/pull-request/ready',
- data={'repo': 'test', 'csrf_token': csrf_token}
+ "/pv/pull-request/ready",
+ data={"repo": "test", "csrf_token": csrf_token},
)
self.assertEqual(output.status_code, 200)
data = json.loads(output.get_data(as_text=True))
- self.assertEqual(sorted(data.keys()), ['code', 'task'])
- self.assertEqual(data['code'], 'OK')
+ self.assertEqual(sorted(data.keys()), ["code", "task"])
+ self.assertEqual(data["code"], "OK")
- @patch('pagure.lib.notify.send_email')
+ @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
# Git repo not found
- output = self.app.post('fork_edit/test/edit/master/f/sources')
+ output = self.app.post("fork_edit/test/edit/master/f/sources")
self.assertEqual(output.status_code, 404)
tests.create_projects(self.session)
- for folder in ['docs', 'tickets', 'requests', 'repos']:
+ for folder in ["docs", "tickets", "requests", "repos"]:
tests.create_projects_git(
- os.path.join(self.path, folder), bare=True)
+ os.path.join(self.path, folder), bare=True
+ )
# User not logged in
- output = self.app.post('fork_edit/test/edit/master/f/sources')
+ output = self.app.post("fork_edit/test/edit/master/f/sources")
self.assertEqual(output.status_code, 302)
user = tests.FakeUser()
- user.username = 'pingou'
+ user.username = "pingou"
with tests.user_set(self.app.application, user):
# Invalid request
- output = self.app.post('fork_edit/test/edit/master/f/source')
+ output = self.app.post("fork_edit/test/edit/master/f/source")
self.assertEqual(output.status_code, 400)
- output = self.app.get('/new/')
+ output = self.app.get("/new/")
self.assertEqual(output.status_code, 200)
- self.assertIn('Create new Project', output.get_data(as_text=True))
+ self.assertIn(
+ "Create new Project",
+ output.get_data(as_text=True),
+ )
csrf_token = self.get_csrf(output=output)
- data = {
- 'csrf_token': csrf_token,
- }
+ data = {"csrf_token": csrf_token}
# No files can be found since they are not added
- output = self.app.post('fork_edit/test/edit/master/f/sources',
- data=data, follow_redirects=True)
+ 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'
+ user.username = "foo"
with tests.user_set(self.app.application, user):
- data = {
- 'csrf_token': csrf_token,
- }
+ data = {"csrf_token": csrf_token}
# Invalid request
- output = self.app.post('fork_edit/test/edit/master/f/sources',
- follow_redirects=True)
+ output = self.app.post(
+ "fork_edit/test/edit/master/f/sources", follow_redirects=True
+ )
self.assertEqual(output.status_code, 400)
# Add content to the repo
- tests.add_content_git_repo(os.path.join(
- pagure.config.config['GIT_FOLDER'], 'test.git'))
+ tests.add_content_git_repo(
+ os.path.join(pagure.config.config["GIT_FOLDER"], "test.git")
+ )
- tests.add_readme_git_repo(os.path.join(
- pagure.config.config['GIT_FOLDER'], 'test.git'))
+ tests.add_readme_git_repo(
+ os.path.join(pagure.config.config["GIT_FOLDER"], "test.git")
+ )
tests.add_binary_git_repo(
- os.path.join(
- pagure.config.config['GIT_FOLDER'], 'test.git'), 'test.jpg')
+ os.path.join(pagure.config.config["GIT_FOLDER"], "test.git"),
+ "test.jpg",
+ )
# Check if button exists
- output = self.app.get('/test/blob/master/f/sources')
+ output = self.app.get("/test/blob/master/f/sources")
self.assertEqual(output.status_code, 200)
self.assertIn(
- 'Fork and Edit\n \n',
- output.get_data(as_text=True))
+ "Fork and Edit\n \n",
+ output.get_data(as_text=True),
+ )
# Check fork-edit doesn't show for binary files
- output = self.app.get('/test/blob/master/f/test.jpg')
+ output = self.app.get("/test/blob/master/f/test.jpg")
self.assertEqual(output.status_code, 200)
self.assertNotIn(
- 'Fork and Edit\n \n',
- output.get_data(as_text=True))
+ "Fork and Edit\n \n",
+ output.get_data(as_text=True),
+ )
# Check for edit panel
- output = self.app.post('fork_edit/test/edit/master/f/sources',
- data=data, follow_redirects=True)
+ output = self.app.post(
+ "fork_edit/test/edit/master/f/sources",
+ data=data,
+ follow_redirects=True,
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
'- '
' master'
'
- '
- ' sources
',
- output_text)
+ " sources",
+ output_text,
+ )
self.assertIn(
'',
- output_text)
+ output_text,
+ )
- # Check for edit panel- Fork already done
- output = self.app.post('fork_edit/test/edit/master/f/sources',
- data=data, follow_redirects=True)
+ # Check for edit panel- Fork already done
+ output = self.app.post(
+ "fork_edit/test/edit/master/f/sources",
+ data=data,
+ follow_redirects=True,
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
+ self.assertIn("Edit - test - Pagure ", output_text)
self.assertIn(
- 'Edit - test - Pagure ',
- output_text)
- self.assertIn(
- 'You had already forked '
- 'this project', output_text)
+ "You had already forked " "this project", output_text
+ )
self.assertIn(
' View Upstream',
- output_text)
+ output_text,
+ )
self.assertIn(
'- '
' master'
'
- '
- ' sources
',
- output_text)
+ " sources",
+ output_text,
+ )
self.assertIn(
'',
- output_text)
+ output_text,
+ )
# 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)
+ 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('Edit - somenamespace/test3 - Pagure ',
- output_text)
+ "Edit - somenamespace/test3 - Pagure ",
+ output_text,
+ )
self.assertIn(
' View Upstream',
- output_text)
+ output_text,
+ )
self.assertIn(
'- '
' master'
'
- '
- ' sources
',
- output_text)
+ " sources",
+ output_text,
+ )
self.assertIn(
'',
- output_text)
+ output_text,
+ )
# Check for edit panel - while the project was already forked
output = self.app.post(
- 'fork_edit/somenamespace/test3/edit/master/f/sources',
- data=data, follow_redirects=True)
+ "fork_edit/somenamespace/test3/edit/master/f/sources",
+ data=data,
+ follow_redirects=True,
+ )
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- 'Edit - somenamespace/test3 - Pagure ',
- output_text)
+ "Edit - somenamespace/test3 - Pagure ",
+ output_text,
+ )
self.assertIn(
- 'You had already forked '
- 'this project', output_text)
+ "You had already forked " "this project", output_text
+ )
self.assertIn(
' View Upstream',
- output_text)
+ output_text,
+ )
self.assertIn(
'- '
' master'
'
- '
- ' sources
',
- output_text)
+ " sources",
+ output_text,
+ )
self.assertIn(
'',
- output_text)
+ output_text,
+ )
- @patch('pagure.lib.notify.send_email')
+ @patch("pagure.lib.notify.send_email")
def test_fork_without_main_repo(self, send_email):
""" Test the fork without the main repo. """
send_email.return_value = True
@@ -4118,9 +4584,9 @@ More information
# Create a fork with no parent i.e parent_id = None
item = pagure.lib.model.Project(
user_id=2, # foo
- name='test',
- description='test project #1',
- hook_token='aaabbb',
+ name="test",
+ description="test project #1",
+ hook_token="aaabbb",
is_fork=True,
parent_id=None,
)
@@ -4128,70 +4594,78 @@ More information
self.session.commit()
# Get fork project
- project = pagure.lib.query._get_project(self.session, 'test', 'foo')
+ project = pagure.lib.query._get_project(self.session, "test", "foo")
# Pull-requests and issue-trackers are off for forks
# lib function is not used here so mannually turning them off
project_settings = project.settings
- project_settings['pull_requests'] = False
- project_settings['issue_tracker'] = False
+ project_settings["pull_requests"] = False
+ project_settings["issue_tracker"] = False
project.settings = project_settings
self.session.add(project)
self.session.commit()
tests.create_projects_git(
- os.path.join(self.path, 'repos', 'forks', 'foo'), bare=True)
+ os.path.join(self.path, "repos", "forks", "foo"), bare=True
+ )
# Create a git repo to play with
- gitrepo = os.path.join(self.path, 'repos', 'test.git')
+ gitrepo = os.path.join(self.path, "repos", "test.git")
self.assertFalse(os.path.exists(gitrepo))
os.makedirs(gitrepo)
repo = pygit2.init_repository(gitrepo, bare=True)
# Create a fork of this repo
- newpath = tempfile.mkdtemp(prefix='pagure-fork-test')
- gitrepo = os.path.join(self.path, 'repos', 'forks', 'foo', 'test.git')
+ newpath = tempfile.mkdtemp(prefix="pagure-fork-test")
+ gitrepo = os.path.join(self.path, "repos", "forks", "foo", "test.git")
new_repo = pygit2.clone_repository(gitrepo, newpath)
tests.add_content_git_repo(gitrepo)
# UI test for deleted main
- output = self.app.get('/fork/foo/test')
+ output = self.app.get("/fork/foo/test")
self.assertEqual(output.status_code, 200)
- self.assertIn('Forked from a deleted repository', output.get_data(as_text=True))
+ self.assertIn(
+ "Forked from a deleted repository", output.get_data(as_text=True)
+ )
# Testing commit endpoint
- output = self.app.get('/fork/foo/test/commits/master')
+ output = self.app.get("/fork/foo/test/commits/master")
self.assertEqual(output.status_code, 200)
self.assertIn(
'Commits 2\n',
- output.get_data(as_text=True))
+ output.get_data(as_text=True),
+ )
# Test pull-request endpoint
- output = self.app.get('/fork/foo/test/pull-requests')
+ output = self.app.get("/fork/foo/test/pull-requests")
self.assertEqual(output.status_code, 404)
# Test issue-tracker endpoint
- output = self.app.get('/fork/foo/test/issues')
+ output = self.app.get("/fork/foo/test/issues")
self.assertEqual(output.status_code, 404)
shutil.rmtree(newpath)
def _set_up_for_reaction_test(self):
- self.session.add(pagure.lib.model.User(
- user='jdoe',
- fullname='John Doe',
- password=b'password',
- default_email='jdoe@example.com',
- ))
+ self.session.add(
+ pagure.lib.model.User(
+ user="jdoe",
+ fullname="John Doe",
+ password=b"password",
+ default_email="jdoe@example.com",
+ )
+ )
self.session.commit()
tests.create_projects(self.session)
tests.create_projects_git(
- os.path.join(self.path, 'requests'), bare=True)
+ os.path.join(self.path, "requests"), bare=True
+ )
set_up_git_repo(
- self.session, self.path, new_project=None, branch_from='feature')
- pagure.lib.query.get_authorized_project(self.session, 'test')
+ self.session, self.path, new_project=None, branch_from="feature"
+ )
+ pagure.lib.query.get_authorized_project(self.session, "test")
request = pagure.lib.query.search_pull_requests(
- self.session, requestid=1, project_id=1,
+ self.session, requestid=1, project_id=1
)
pagure.lib.query.add_pull_request_comment(
self.session,
@@ -4200,12 +4674,12 @@ More information
tree_id=None,
filename=None,
row=None,
- comment='Hello',
- user='jdoe',
+ comment="Hello",
+ user="jdoe",
)
self.session.commit()
- @patch('pagure.lib.notify.send_email')
+ @patch("pagure.lib.notify.send_email")
def test_add_reaction(self, send_email):
""" Test the request_pull endpoint. """
send_email.return_value = True
@@ -4213,54 +4687,53 @@ More information
self._set_up_for_reaction_test()
user = tests.FakeUser()
- user.username = 'pingou'
+ user.username = "pingou"
with tests.user_set(self.app.application, user):
- output = self.app.get('/test/pull-request/1')
+ output = self.app.get("/test/pull-request/1")
self.assertEqual(output.status_code, 200)
data = {
- 'csrf_token': self.get_csrf(output=output),
- 'reaction': 'Thumbs up',
+ "csrf_token": self.get_csrf(output=output),
+ "reaction": "Thumbs up",
}
output = self.app.post(
- '/test/pull-request/1/comment/1/react',
+ "/test/pull-request/1/comment/1/react",
data=data,
follow_redirects=True,
)
self.assertEqual(output.status_code, 200)
# Load the page and check reaction is added.
- output = self.app.get('/test/pull-request/1')
+ output = self.app.get("/test/pull-request/1")
self.assertEqual(output.status_code, 200)
self.assertIn(
- 'Thumbs up sent by pingou',
- output.get_data(as_text=True)
+ "Thumbs up sent by pingou", output.get_data(as_text=True)
)
- @patch('pagure.lib.notify.send_email')
+ @patch("pagure.lib.notify.send_email")
def test_add_reaction_unauthenticated(self, send_email):
""" Test the request_pull endpoint. """
send_email.return_value = True
self._set_up_for_reaction_test()
- output = self.app.get('/test/pull-request/1')
+ output = self.app.get("/test/pull-request/1")
self.assertEqual(output.status_code, 200)
data = {
- 'csrf_token': self.get_csrf(output=output),
- 'reaction': 'Thumbs down',
+ "csrf_token": self.get_csrf(output=output),
+ "reaction": "Thumbs down",
}
output = self.app.post(
- '/test/pull-request/1/comment/1/react',
+ "/test/pull-request/1/comment/1/react",
data=data,
follow_redirects=False,
)
# Redirect to login page
self.assertEqual(output.status_code, 302)
- self.assertIn('/login/', output.headers['Location'])
+ self.assertIn("/login/", output.headers["Location"])
class TestTicketAccessEditPRMetadata(tests.Modeltests):
@@ -4272,142 +4745,167 @@ class TestTicketAccessEditPRMetadata(tests.Modeltests):
super(TestTicketAccessEditPRMetadata, self).setUp()
tests.create_projects(self.session)
tests.create_projects_git(
- os.path.join(self.path, 'requests'), bare=True)
+ os.path.join(self.path, "requests"), bare=True
+ )
set_up_git_repo(
- self.session, self.path, new_project=None, branch_from='feature')
+ self.session, self.path, new_project=None, branch_from="feature"
+ )
# Add user "foo" to the project "test"
- repo = pagure.lib.query._get_project(self.session, 'test')
+ repo = pagure.lib.query._get_project(self.session, "test")
msg = pagure.lib.query.add_user_to_project(
session=self.session,
project=repo,
- new_user='foo',
- user='pingou',
- access='ticket',
+ new_user="foo",
+ user="pingou",
+ access="ticket",
)
self.session.commit()
- self.assertEqual(msg, 'User added')
+ self.assertEqual(msg, "User added")
def test_unauth_cannot_view_edit_metadata_ui(self):
""" Test that unauthenticated users cannot view the edit the
metadata fields in the UI. """
- output = self.app.get('/test/pull-request/1')
+ output = self.app.get("/test/pull-request/1")
self.assertEqual(output.status_code, 200)
output_text = output.get_data(as_text=True)
self.assertIn(
- 'PR#1: PR from the feature branch - test\n'
- ' - Pagure ', output_text)
+ "PR#1: PR from the feature branch - test\n"
+ " - Pagure ",
+ output_text,
+ )
self.assertNotIn(
''
- '', output_text)
+ '',
+ output_text,
+ )
self.assertNotIn(
' ',
- output_text)
+ " No user invalid found to give this group to
Cannot edit binary files
', output.get_data(as_text=True)) + self.assertIn( + "Cannot edit binary files
", + output.get_data(as_text=True), + ) # Check fork-edit shows when user is not logged in - output = self.app.get('/test/blob/master/f/sources') + output = self.app.get("/test/blob/master/f/sources") self.assertEqual(output.status_code, 200) self.assertIn( - 'Fork and Edit\n \n', - output.get_data(as_text=True)) + "Fork and Edit\n \n", + output.get_data(as_text=True), + ) # Check if fork-edit shows for different user - user.username = 'pingou' + user.username = "pingou" with tests.user_set(self.app.application, user): # Check if button exists - output = self.app.get('/test/blob/master/f/sources') + output = self.app.get("/test/blob/master/f/sources") self.assertEqual(output.status_code, 200) self.assertIn( - 'Edit in your fork\n \n', - output.get_data(as_text=True)) + "Edit in your fork\n \n", + output.get_data(as_text=True), + ) # Check fork-edit doesn't show for binary - output = self.app.get('/test/blob/master/f/test.jpg') + output = self.app.get("/test/blob/master/f/test.jpg") self.assertEqual(output.status_code, 200) self.assertNotIn( - 'Edit in your fork\n \n', - output.get_data(as_text=True)) + "Edit in your fork\n \n", + output.get_data(as_text=True), + ) - @patch('pagure.lib.notify.send_email', MagicMock(return_value=True)) + @patch("pagure.lib.notify.send_email", MagicMock(return_value=True)) def test_fork_edit_file_namespace(self): """ Test the fork_edit file endpoint on a namespaced project. """ tests.create_projects(self.session) - for folder in ['docs', 'tickets', 'requests', 'repos']: + for folder in ["docs", "tickets", "requests", "repos"]: tests.create_projects_git( - os.path.join(self.path, folder), bare=True) + os.path.join(self.path, folder), bare=True + ) # User not logged in output = self.app.post( - 'fork_edit/somenamespace/test3/edit/master/f/sources') + "fork_edit/somenamespace/test3/edit/master/f/sources" + ) self.assertEqual(output.status_code, 302) user = tests.FakeUser() - user.username = 'pingou' + user.username = "pingou" with tests.user_set(self.app.application, user): # Invalid request output = self.app.post( - 'fork_edit/somenamespace/test3/edit/master/f/sources') + "fork_edit/somenamespace/test3/edit/master/f/sources" + ) self.assertEqual(output.status_code, 400) - output = self.app.get('/new/') + output = self.app.get("/new/") self.assertEqual(output.status_code, 200) - self.assertIn('Create new Project', output.get_data(as_text=True)) + self.assertIn( + "Create new Project", + output.get_data(as_text=True), + ) csrf_token = self.get_csrf(output=output) - data = { - 'csrf_token': csrf_token, - } + data = {"csrf_token": csrf_token} # No files can be found since they are not added output = self.app.post( - 'fork_edit/somenamespace/test3/edit/master/f/sources', - data=data, follow_redirects=True) + "fork_edit/somenamespace/test3/edit/master/f/sources", + data=data, + follow_redirects=True, + ) self.assertEqual(output.status_code, 404) user = tests.FakeUser() - user.username = 'foo' + user.username = "foo" with tests.user_set(self.app.application, user): - data = { - 'csrf_token': csrf_token, - } + data = {"csrf_token": csrf_token} # Invalid request output = self.app.post( - 'fork_edit/somenamespace/test3/edit/master/f/sources', - follow_redirects=True) + "fork_edit/somenamespace/test3/edit/master/f/sources", + follow_redirects=True, + ) self.assertEqual(output.status_code, 400) # Add content to the repo - tests.add_content_git_repo(os.path.join( - pagure.config.config['GIT_FOLDER'], - 'somenamespace', 'test3.git')) + tests.add_content_git_repo( + os.path.join( + pagure.config.config["GIT_FOLDER"], + "somenamespace", + "test3.git", + ) + ) - tests.add_readme_git_repo(os.path.join( - pagure.config.config['GIT_FOLDER'], - 'somenamespace', 'test3.git')) + tests.add_readme_git_repo( + os.path.join( + pagure.config.config["GIT_FOLDER"], + "somenamespace", + "test3.git", + ) + ) tests.add_binary_git_repo( os.path.join( - pagure.config.config['GIT_FOLDER'], - 'somenamespace', 'test3.git'), 'test.jpg') + pagure.config.config["GIT_FOLDER"], + "somenamespace", + "test3.git", + ), + "test.jpg", + ) # Check if button exists - output = self.app.get('/somenamespace/test3/blob/master/f/sources') + output = self.app.get("/somenamespace/test3/blob/master/f/sources") self.assertEqual(output.status_code, 200) self.assertIn( - 'Fork and Edit\n \n', - output.get_data(as_text=True)) + "Fork and Edit\n \n", + output.get_data(as_text=True), + ) # Check fork-edit doesn't show for binary files - output = self.app.get('/somenamespace/test3/blob/master/f/test.jpg') + output = self.app.get( + "/somenamespace/test3/blob/master/f/test.jpg" + ) self.assertEqual(output.status_code, 200) self.assertNotIn( - 'Fork and Edit\n \n', - output.get_data(as_text=True)) + "Fork and Edit\n \n", + output.get_data(as_text=True), + ) # Check for edit panel output = self.app.post( - 'fork_edit/somenamespace/test3/edit/master/f/sources', - data=data, follow_redirects=True) + "fork_edit/somenamespace/test3/edit/master/f/sources", + data=data, + follow_redirects=True, + ) self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '