From 2dbc2be846d1d00e907efbf8171c35b889ab0155 Mon Sep 17 00:00:00 2001 From: Robert Westman Date: Thu, 3 Jun 2021 09:45:09 +0200 Subject: Adds failing test for repo.tag() method --- test/test_repo.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'test/test_repo.py') diff --git a/test/test_repo.py b/test/test_repo.py index 8dc17833..9261f1cf 100644 --- a/test/test_repo.py +++ b/test/test_repo.py @@ -414,6 +414,16 @@ class TestRepo(TestBase): def test_tag(self): assert self.rorepo.tag('refs/tags/0.1.5').commit + def test_tag_to_full_tag_path(self): + tags = ['0.1.5', 'tags/0.1.5', 'refs/tags/0.1.5'] + value_errors = [] + for tag in tags: + try: + self.rorepo.tag(tag) + except ValueError as valueError: + value_errors.append(valueError.args[0]) + raise ValueError('. '.join(value_errors)) + def test_archive(self): tmpfile = tempfile.mktemp(suffix='archive-test') with open(tmpfile, 'wb') as stream: @@ -445,7 +455,7 @@ class TestRepo(TestBase): tlist = b[0][1] self.assertTrue(tlist) self.assertTrue(isinstance(tlist[0], str)) - self.assertTrue(len(tlist) < sum(len(t) for t in tlist)) # test for single-char bug + self.assertTrue(len(tlist) < sum(len(t) for t in tlist)) # test for single-char bug # BINARY BLAME git.return_value = fixture('blame_binary') @@ -454,7 +464,7 @@ class TestRepo(TestBase): def test_blame_real(self): c = 0 - nml = 0 # amount of multi-lines per blame + nml = 0 # amount of multi-lines per blame for item in self.rorepo.head.commit.tree.traverse( predicate=lambda i, d: i.type == 'blob' and i.path.endswith('.py')): c += 1 @@ -486,7 +496,8 @@ class TestRepo(TestBase): # Original line numbers orig_ranges = flatten([entry.orig_linenos for entry in blame_output]) - self.assertEqual(orig_ranges, flatten([range(2, 3), range(14, 15), range(1, 2), range(2, 13), range(13, 15)])) # noqa E501 + self.assertEqual(orig_ranges, flatten( + [range(2, 3), range(14, 15), range(1, 2), range(2, 13), range(13, 15)])) # noqa E501 @mock.patch.object(Git, '_call_process') def test_blame_complex_revision(self, git): @@ -530,9 +541,9 @@ class TestRepo(TestBase): # end for each run def test_config_reader(self): - reader = self.rorepo.config_reader() # all config files + reader = self.rorepo.config_reader() # all config files assert reader.read_only - reader = self.rorepo.config_reader("repository") # single config file + reader = self.rorepo.config_reader("repository") # single config file assert reader.read_only def test_config_writer(self): @@ -729,7 +740,7 @@ class TestRepo(TestBase): def test_rw_rev_parse(self, rwrepo): # verify it does not confuse branches with hexsha ids ahead = rwrepo.create_head('aaaaaaaa') - assert(rwrepo.rev_parse(str(ahead)) == ahead.commit) + assert (rwrepo.rev_parse(str(ahead)) == ahead.commit) def test_rev_parse(self): rev_parse = self.rorepo.rev_parse @@ -1041,7 +1052,7 @@ class TestRepo(TestBase): def test_rebasing(self, rw_dir): r = Repo.init(rw_dir) fp = osp.join(rw_dir, 'hello.txt') - r.git.commit("--allow-empty", message="init",) + r.git.commit("--allow-empty", message="init", ) with open(fp, 'w') as fs: fs.write("hello world") r.git.add(Git.polish_url(fp)) -- cgit v1.2.1 From 057514e85bc99754e08d45385bf316920963adf9 Mon Sep 17 00:00:00 2001 From: Robert Westman Date: Thu, 3 Jun 2021 10:18:46 +0200 Subject: Fixes test to not throw false negative results --- test/test_repo.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test/test_repo.py') diff --git a/test/test_repo.py b/test/test_repo.py index 9261f1cf..453ec5c3 100644 --- a/test/test_repo.py +++ b/test/test_repo.py @@ -422,7 +422,8 @@ class TestRepo(TestBase): self.rorepo.tag(tag) except ValueError as valueError: value_errors.append(valueError.args[0]) - raise ValueError('. '.join(value_errors)) + if value_errors: + raise ValueError('. '.join(value_errors)) def test_archive(self): tmpfile = tempfile.mktemp(suffix='archive-test') -- cgit v1.2.1 From 79e24f78fa35136216130a10d163c91f9a6d4970 Mon Sep 17 00:00:00 2001 From: Robert Westman Date: Thu, 3 Jun 2021 10:52:59 +0200 Subject: Reverts auto format introduced with 2dbc2be8 --- test/test_repo.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'test/test_repo.py') diff --git a/test/test_repo.py b/test/test_repo.py index 453ec5c3..0311653a 100644 --- a/test/test_repo.py +++ b/test/test_repo.py @@ -422,8 +422,7 @@ class TestRepo(TestBase): self.rorepo.tag(tag) except ValueError as valueError: value_errors.append(valueError.args[0]) - if value_errors: - raise ValueError('. '.join(value_errors)) + raise ValueError('. '.join(value_errors)) def test_archive(self): tmpfile = tempfile.mktemp(suffix='archive-test') @@ -456,7 +455,7 @@ class TestRepo(TestBase): tlist = b[0][1] self.assertTrue(tlist) self.assertTrue(isinstance(tlist[0], str)) - self.assertTrue(len(tlist) < sum(len(t) for t in tlist)) # test for single-char bug + self.assertTrue(len(tlist) < sum(len(t) for t in tlist)) # test for single-char bug # BINARY BLAME git.return_value = fixture('blame_binary') @@ -465,7 +464,7 @@ class TestRepo(TestBase): def test_blame_real(self): c = 0 - nml = 0 # amount of multi-lines per blame + nml = 0 # amount of multi-lines per blame for item in self.rorepo.head.commit.tree.traverse( predicate=lambda i, d: i.type == 'blob' and i.path.endswith('.py')): c += 1 @@ -497,8 +496,7 @@ class TestRepo(TestBase): # Original line numbers orig_ranges = flatten([entry.orig_linenos for entry in blame_output]) - self.assertEqual(orig_ranges, flatten( - [range(2, 3), range(14, 15), range(1, 2), range(2, 13), range(13, 15)])) # noqa E501 + self.assertEqual(orig_ranges, flatten([range(2, 3), range(14, 15), range(1, 2), range(2, 13), range(13, 15)])) # noqa E501 @mock.patch.object(Git, '_call_process') def test_blame_complex_revision(self, git): @@ -542,9 +540,9 @@ class TestRepo(TestBase): # end for each run def test_config_reader(self): - reader = self.rorepo.config_reader() # all config files + reader = self.rorepo.config_reader() # all config files assert reader.read_only - reader = self.rorepo.config_reader("repository") # single config file + reader = self.rorepo.config_reader("repository") # single config file assert reader.read_only def test_config_writer(self): @@ -741,7 +739,7 @@ class TestRepo(TestBase): def test_rw_rev_parse(self, rwrepo): # verify it does not confuse branches with hexsha ids ahead = rwrepo.create_head('aaaaaaaa') - assert (rwrepo.rev_parse(str(ahead)) == ahead.commit) + assert(rwrepo.rev_parse(str(ahead)) == ahead.commit) def test_rev_parse(self): rev_parse = self.rorepo.rev_parse @@ -1053,7 +1051,7 @@ class TestRepo(TestBase): def test_rebasing(self, rw_dir): r = Repo.init(rw_dir) fp = osp.join(rw_dir, 'hello.txt') - r.git.commit("--allow-empty", message="init", ) + r.git.commit("--allow-empty", message="init",) with open(fp, 'w') as fs: fs.write("hello world") r.git.add(Git.polish_url(fp)) -- cgit v1.2.1 From 01a96b92f7d873cbd531d142813c2be7ab88d5a5 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 4 Jun 2021 10:35:22 +0800 Subject: Conditionally throw an error --- test/test_repo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/test_repo.py') diff --git a/test/test_repo.py b/test/test_repo.py index 0311653a..04102b01 100644 --- a/test/test_repo.py +++ b/test/test_repo.py @@ -422,7 +422,7 @@ class TestRepo(TestBase): self.rorepo.tag(tag) except ValueError as valueError: value_errors.append(valueError.args[0]) - raise ValueError('. '.join(value_errors)) + self.assertEqual(value_errors, []) def test_archive(self): tmpfile = tempfile.mktemp(suffix='archive-test') -- cgit v1.2.1 From 385a8c6c1a72dc34f69c5273c1b4c1285cc1d3c5 Mon Sep 17 00:00:00 2001 From: Robert Westman Date: Sat, 5 Jun 2021 12:15:38 +0200 Subject: Adds repo.is_valid_object check --- test/test_repo.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'test/test_repo.py') diff --git a/test/test_repo.py b/test/test_repo.py index 04102b01..8aced94d 100644 --- a/test/test_repo.py +++ b/test/test_repo.py @@ -989,6 +989,34 @@ class TestRepo(TestBase): for i, j in itertools.permutations([c1, 'ffffff', ''], r=2): self.assertRaises(GitCommandError, repo.is_ancestor, i, j) + def test_is_valid_object(self): + repo = self.rorepo + commit_sha = 'f6aa8d1' + blob_sha = '1fbe3e4375' + tree_sha = '960b40fe36' + tag_sha = '42c2f60c43' + + # Check for valid objects + self.assertTrue(repo.is_valid_object(commit_sha)) + self.assertTrue(repo.is_valid_object(blob_sha)) + self.assertTrue(repo.is_valid_object(tree_sha)) + self.assertTrue(repo.is_valid_object(tag_sha)) + + # Check for valid objects of specific type + self.assertTrue(repo.is_valid_object(commit_sha, 'commit')) + self.assertTrue(repo.is_valid_object(blob_sha, 'blob')) + self.assertTrue(repo.is_valid_object(tree_sha, 'tree')) + self.assertTrue(repo.is_valid_object(tag_sha, 'tag')) + + # Check for invalid objects + self.assertFalse(repo.is_valid_object(b'1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a', 'blob')) + + # Check for invalid objects of specific type + self.assertFalse(repo.is_valid_object(commit_sha, 'blob')) + self.assertFalse(repo.is_valid_object(blob_sha, 'commit')) + self.assertFalse(repo.is_valid_object(tree_sha, 'commit')) + self.assertFalse(repo.is_valid_object(tag_sha, 'commit')) + @with_rw_directory def test_git_work_tree_dotgit(self, rw_dir): """Check that we find .git as a worktree file and find the worktree -- cgit v1.2.1