Mercurial > kallithea
changeset 4843:880084c63e52
pullrequests: add unit tests for _get_repo_refs (unfinished)
author | Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com> |
---|---|
date | Thu, 19 Feb 2015 22:46:14 +0100 |
parents | fd8c0117ca22 |
children | 556e98fd06d2 |
files | kallithea/tests/functional/test_pullrequests.py |
diffstat | 1 files changed, 94 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/tests/functional/test_pullrequests.py Wed Feb 18 21:39:01 2015 +0100 +++ b/kallithea/tests/functional/test_pullrequests.py Thu Feb 19 22:46:14 2015 +0100 @@ -1,5 +1,10 @@ from kallithea.tests import * +from kallithea.tests.fixture import Fixture +from kallithea.model.meta import Session +from kallithea.controllers.pullrequests import PullrequestsController + +fixture = Fixture() class TestPullrequestsController(TestController): @@ -7,3 +12,92 @@ self.log_user() response = self.app.get(url(controller='pullrequests', action='index', repo_name=HG_REPO)) + +class TestPullrequestsGetRepoRefs(TestController): + + def setUp(self): + self.main = fixture.create_repo('main', repo_type='hg') + Session.add(self.main) + Session.commit() + self.c = PullrequestsController() + + def tearDown(self): + fixture.destroy_repo('main') + Session.commit() + Session.remove() + + def test_repo_refs_empty_repo(self): + # empty repo with no commits, no branches, no bookmarks, just one tag + refs, default = self.c._get_repo_refs(self.main.scm_instance) + self.assertEqual(default, 'tag:null:0000000000000000000000000000000000000000') + + def test_repo_refs_one_commit_no_hints(self): + cs0 = fixture.commit_change(self.main.repo_name, filename='file1', + content='line1\n', message='commit1', vcs_type='hg', + parent=None, newfile=True) + + refs, default = self.c._get_repo_refs(self.main.scm_instance) + self.assertEqual(default, 'branch:default:%s' % cs0.raw_id) + self.assertIn(([('branch:default:%s' % cs0.raw_id, 'default (current tip)')], + 'Branches'), refs) + + def test_repo_refs_one_commit_rev_hint(self): + cs0 = fixture.commit_change(self.main.repo_name, filename='file1', + content='line1\n', message='commit1', vcs_type='hg', + parent=None, newfile=True) + + refs, default = self.c._get_repo_refs(self.main.scm_instance, rev=cs0.raw_id) + expected = 'branch:default:%s' % cs0.raw_id + self.assertEqual(default, expected) + self.assertIn(([(expected, 'default (current tip)')], 'Branches'), refs) + + def test_repo_refs_two_commits_no_hints(self): + cs0 = fixture.commit_change(self.main.repo_name, filename='file1', + content='line1\n', message='commit1', vcs_type='hg', + parent=None, newfile=True) + cs1 = fixture.commit_change(self.main.repo_name, filename='file2', + content='line2\n', message='commit2', vcs_type='hg', + parent=None, newfile=True) + + refs, default = self.c._get_repo_refs(self.main.scm_instance) + expected = 'branch:default:%s' % cs1.raw_id + self.assertEqual(default, expected) + self.assertIn(([(expected, 'default (current tip)')], 'Branches'), refs) + + def test_repo_refs_two_commits_rev_hints(self): + cs0 = fixture.commit_change(self.main.repo_name, filename='file1', + content='line1\n', message='commit1', vcs_type='hg', + parent=None, newfile=True) + cs1 = fixture.commit_change(self.main.repo_name, filename='file2', + content='line2\n', message='commit2', vcs_type='hg', + parent=None, newfile=True) + + refs, default = self.c._get_repo_refs(self.main.scm_instance, rev=cs0.raw_id) + expected = 'rev:%s:%s' % (cs0.raw_id, cs0.raw_id) + self.assertEqual(default, expected) + self.assertIn(([(expected, 'Changeset: %s' % cs0.raw_id[0:12])], 'Special'), refs) + self.assertIn(([('branch:default:%s' % cs1.raw_id, 'default (current tip)')], 'Branches'), refs) + + refs, default = self.c._get_repo_refs(self.main.scm_instance, rev=cs1.raw_id) + expected = 'branch:default:%s' % cs1.raw_id + self.assertEqual(default, expected) + self.assertIn(([(expected, 'default (current tip)')], 'Branches'), refs) + + def test_repo_refs_two_commits_branch_hint(self): + cs0 = fixture.commit_change(self.main.repo_name, filename='file1', + content='line1\n', message='commit1', vcs_type='hg', + parent=None, newfile=True) + cs1 = fixture.commit_change(self.main.repo_name, filename='file2', + content='line2\n', message='commit2', vcs_type='hg', + parent=None, newfile=True) + + refs, default = self.c._get_repo_refs(self.main.scm_instance, branch='default') + expected = 'branch:default:%s' % cs1.raw_id + self.assertEqual(default, expected) + self.assertIn(([(expected, 'default (current tip)')], 'Branches'), refs) + + def test_repo_refs_one_branch_no_hints(self): + cs0 = fixture.commit_change(self.main.repo_name, filename='file1', + content='line1\n', message='commit1', vcs_type='hg', + parent=None, newfile=True) + # TODO