##// END OF EJS Templates
make the yellow border indicator only for comments, it breaks other things
make the yellow border indicator only for comments, it breaks other things

File last commit:

r3138:ed11764e beta
r3296:6893b65d beta
Show More
test_compare.py
347 lines | 15.0 KiB | text/x-python | PythonLexer
Basic compare-view controller with ref parsing
r2241 from rhodecode.tests import *
Bumped mercurial version to 2.3...
r2684 from rhodecode.model.repo import RepoModel
from rhodecode.model.meta import Session
from rhodecode.model.db import Repository
from rhodecode.model.scm import ScmModel
from rhodecode.lib.vcs.backends.base import EmptyChangeset
Basic compare-view controller with ref parsing
r2241
Added basic models for saving open pull requests...
r2434
Basic implementation of cherry picking changesets...
r3023 def _fork_repo(fork_name, vcs_type, parent=None):
if vcs_type =='hg':
_REPO = HG_REPO
elif vcs_type == 'git':
_REPO = GIT_REPO
if parent:
_REPO = parent
form_data = dict(
repo_name=fork_name,
repo_name_full=fork_name,
repo_group=None,
repo_type=vcs_type,
description='',
private=False,
copy_permissions=False,
landing_rev='tip',
update_after_clone=False,
fork_parent_id=Repository.get_by_repo_name(_REPO),
)
repo = RepoModel().create_fork(form_data, cur_user=TEST_USER_ADMIN_LOGIN)
Session().commit()
return Repository.get_by_repo_name(fork_name)
def _commit_change(repo, filename, content, message, vcs_type, parent=None, newfile=False):
repo = Repository.get_by_repo_name(repo)
_cs = parent
if not parent:
_cs = EmptyChangeset(alias=vcs_type)
if newfile:
cs = ScmModel().create_node(
repo=repo.scm_instance, repo_name=repo.repo_name,
cs=_cs, user=TEST_USER_ADMIN_LOGIN,
author=TEST_USER_ADMIN_LOGIN,
message=message,
content=content,
f_path=filename
)
else:
cs = ScmModel().commit_change(
repo=repo.scm_instance, repo_name=repo.repo_name,
cs=parent, user=TEST_USER_ADMIN_LOGIN,
author=TEST_USER_ADMIN_LOGIN,
message=message,
content=content,
f_path=filename
)
return cs
Basic compare-view controller with ref parsing
r2241 class TestCompareController(TestController):
Basic implementation of cherry picking changesets...
r3023 def test_compare_forks_on_branch_extra_commits_hg(self):
Bumped mercurial version to 2.3...
r2684 self.log_user()
Basic implementation of cherry picking changesets...
r3023 repo1 = RepoModel().create_repo(repo_name='one', repo_type='hg',
description='diff-test',
owner=TEST_USER_ADMIN_LOGIN)
r1_id = repo1.repo_id
Session().commit()
#commit something !
cs0 = _commit_change(repo1.repo_name, filename='file1', content='line1\n',
message='commit1', vcs_type='hg', parent=None, newfile=True)
#fork this repo
repo2 = _fork_repo('one-fork', 'hg', parent='one')
Session().commit()
r2_id = repo2.repo_id
Bumped mercurial version to 2.3...
r2684
Basic implementation of cherry picking changesets...
r3023 #add two extra commit into fork
cs1 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\n',
message='commit2', vcs_type='hg', parent=cs0)
Bumped mercurial version to 2.3...
r2684
Basic implementation of cherry picking changesets...
r3023 cs2 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\nline3\n',
message='commit3', vcs_type='hg', parent=cs1)
Multiple changes for compare system...
r3015
Basic implementation of cherry picking changesets...
r3023 rev1 = 'default'
rev2 = 'default'
Multiple changes for compare system...
r3015 response = self.app.get(url(controller='compare', action='index',
Basic implementation of cherry picking changesets...
r3023 repo_name=repo2.repo_name,
org_ref_type="branch",
Multiple changes for compare system...
r3015 org_ref=rev1,
Basic implementation of cherry picking changesets...
r3023 other_ref_type="branch",
Multiple changes for compare system...
r3015 other_ref=rev2,
Basic implementation of cherry picking changesets...
r3023 repo=repo1.repo_name
Multiple changes for compare system...
r3015 ))
try:
Mads Kiilerich
html templates: escape '>' as '>'
r3138 response.mustcontain('%s@%s -> %s@%s' % (repo2.repo_name, rev1, repo1.repo_name, rev2))
Basic implementation of cherry picking changesets...
r3023 response.mustcontain("""Showing 2 commits""")
response.mustcontain("""1 file changed with 2 insertions and 0 deletions""")
Multiple changes for compare system...
r3015
Basic implementation of cherry picking changesets...
r3023 response.mustcontain("""<div class="message tooltip" title="commit2" style="white-space:normal">commit2</div>""")
response.mustcontain("""<div class="message tooltip" title="commit3" style="white-space:normal">commit3</div>""")
Multiple changes for compare system...
r3015
Basic implementation of cherry picking changesets...
r3023 response.mustcontain("""<a href="/%s/changeset/%s">r1:%s</a>""" % (repo2.repo_name, cs1.raw_id, cs1.short_id))
response.mustcontain("""<a href="/%s/changeset/%s">r2:%s</a>""" % (repo2.repo_name, cs2.raw_id, cs2.short_id))
Multiple changes for compare system...
r3015 ## files
Basic implementation of cherry picking changesets...
r3023 response.mustcontain("""<a href="/%s/compare/branch@%s...branch@%s#C--826e8142e6ba">file1</a>""" % (repo2.repo_name, rev1, rev2))
Multiple changes for compare system...
r3015 finally:
fixed tests for databases that have FKs. Thank you sqlite...
r3026 RepoModel().delete(r2_id)
Basic implementation of cherry picking changesets...
r3023 RepoModel().delete(r1_id)
White space cleanup
r3029
Multiple changes for compare system...
r3015
Basic implementation of cherry picking changesets...
r3023 def test_compare_forks_on_branch_extra_commits_origin_has_incomming_hg(self):
Multiple changes for compare system...
r3015 self.log_user()
Basic implementation of cherry picking changesets...
r3023 repo1 = RepoModel().create_repo(repo_name='one', repo_type='hg',
description='diff-test',
owner=TEST_USER_ADMIN_LOGIN)
r1_id = repo1.repo_id
Session().commit()
#commit something !
cs0 = _commit_change(repo1.repo_name, filename='file1', content='line1\n',
message='commit1', vcs_type='hg', parent=None, newfile=True)
Multiple changes for compare system...
r3015
Basic implementation of cherry picking changesets...
r3023 #fork this repo
repo2 = _fork_repo('one-fork', 'hg', parent='one')
Multiple changes for compare system...
r3015 Session().commit()
Basic implementation of cherry picking changesets...
r3023 #now commit something to origin repo
cs1_prim = _commit_change(repo1.repo_name, filename='file2', content='line1file2\n',
message='commit2', vcs_type='hg', parent=cs0, newfile=True)
r2_id = repo2.repo_id
Bumped mercurial version to 2.3...
r2684
Basic implementation of cherry picking changesets...
r3023 #add two extra commit into fork
cs1 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\n',
message='commit2', vcs_type='hg', parent=cs0)
cs2 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\nline3\n',
message='commit3', vcs_type='hg', parent=cs1)
rev1 = 'default'
rev2 = 'default'
Bumped mercurial version to 2.3...
r2684 response = self.app.get(url(controller='compare', action='index',
Basic implementation of cherry picking changesets...
r3023 repo_name=repo2.repo_name,
org_ref_type="branch",
Bumped mercurial version to 2.3...
r2684 org_ref=rev1,
Basic implementation of cherry picking changesets...
r3023 other_ref_type="branch",
Bumped mercurial version to 2.3...
r2684 other_ref=rev2,
Basic implementation of cherry picking changesets...
r3023 repo=repo1.repo_name
Bumped mercurial version to 2.3...
r2684 ))
try:
Mads Kiilerich
html templates: escape '>' as '&gt;'
r3138 response.mustcontain('%s@%s -&gt; %s@%s' % (repo2.repo_name, rev1, repo1.repo_name, rev2))
Basic implementation of cherry picking changesets...
r3023 response.mustcontain("""Showing 2 commits""")
response.mustcontain("""1 file changed with 2 insertions and 0 deletions""")
Bumped mercurial version to 2.3...
r2684
Basic implementation of cherry picking changesets...
r3023 response.mustcontain("""<div class="message tooltip" title="commit2" style="white-space:normal">commit2</div>""")
response.mustcontain("""<div class="message tooltip" title="commit3" style="white-space:normal">commit3</div>""")
Bumped mercurial version to 2.3...
r2684
Basic implementation of cherry picking changesets...
r3023 response.mustcontain("""<a href="/%s/changeset/%s">r1:%s</a>""" % (repo2.repo_name, cs1.raw_id, cs1.short_id))
response.mustcontain("""<a href="/%s/changeset/%s">r2:%s</a>""" % (repo2.repo_name, cs2.raw_id, cs2.short_id))
Bumped mercurial version to 2.3...
r2684 ## files
Basic implementation of cherry picking changesets...
r3023 response.mustcontain("""<a href="/%s/compare/branch@%s...branch@%s#C--826e8142e6ba">file1</a>""" % (repo2.repo_name, rev1, rev2))
Bumped mercurial version to 2.3...
r2684 finally:
fixed tests for databases that have FKs. Thank you sqlite...
r3026 RepoModel().delete(r2_id)
Basic implementation of cherry picking changesets...
r3023 RepoModel().delete(r1_id)
Bumped mercurial version to 2.3...
r2684
Basic implementation of cherry picking changesets...
r3023
# def test_compare_remote_repos_remote_flag_off(self):
Multiple changes for compare system...
r3015 # self.log_user()
Basic implementation of cherry picking changesets...
r3023 # _fork_repo(HG_FORK, 'hg')
Multiple changes for compare system...
r3015 #
# rev1 = '56349e29c2af'
# rev2 = '7d4bc8ec6be5'
#
# response = self.app.get(url(controller='compare', action='index',
# repo_name=HG_REPO,
# org_ref_type="rev",
# org_ref=rev1,
# other_ref_type="rev",
# other_ref=rev2,
# repo=HG_FORK,
# bundle=False,
# ))
#
# try:
Mads Kiilerich
html templates: escape '>' as '&gt;'
r3138 # response.mustcontain('%s@%s -&gt; %s@%s' % (HG_REPO, rev1, HG_FORK, rev2))
Multiple changes for compare system...
r3015 # ## outgoing changesets between those revisions
#
# response.mustcontain("""<a href="/%s/changeset/2dda4e345facb0ccff1a191052dd1606dba6781d">r4:2dda4e345fac</a>""" % (HG_REPO))
# response.mustcontain("""<a href="/%s/changeset/6fff84722075f1607a30f436523403845f84cd9e">r5:6fff84722075</a>""" % (HG_REPO))
# response.mustcontain("""<a href="/%s/changeset/7d4bc8ec6be56c0f10425afb40b6fc315a4c25e7">r6:%s</a>""" % (HG_REPO, rev2))
#
# ## files
# response.mustcontain("""<a href="/%s/compare/rev@%s...rev@%s#C--9c390eb52cd6">vcs/backends/hg.py</a>""" % (HG_REPO, rev1, rev2))
# response.mustcontain("""<a href="/%s/compare/rev@%s...rev@%s#C--41b41c1f2796">vcs/backends/__init__.py</a>""" % (HG_REPO, rev1, rev2))
# response.mustcontain("""<a href="/%s/compare/rev@%s...rev@%s#C--2f574d260608">vcs/backends/base.py</a>""" % (HG_REPO, rev1, rev2))
# finally:
# RepoModel().delete(HG_FORK)
Bumped mercurial version to 2.3...
r2684
fixes #550 mercurial repositories comparision failed when origin repo had...
r2801
Basic implementation of cherry picking changesets...
r3023 #
# def test_compare_remote_branches_hg(self):
# self.log_user()
#
# _fork_repo(HG_FORK, 'hg')
#
# rev1 = '56349e29c2af'
# rev2 = '7d4bc8ec6be5'
#
# response = self.app.get(url(controller='compare', action='index',
# repo_name=HG_REPO,
# org_ref_type="rev",
# org_ref=rev1,
# other_ref_type="rev",
# other_ref=rev2,
# repo=HG_FORK,
# ))
#
# try:
Mads Kiilerich
html templates: escape '>' as '&gt;'
r3138 # response.mustcontain('%s@%s -&gt; %s@%s' % (HG_REPO, rev1, HG_FORK, rev2))
Basic implementation of cherry picking changesets...
r3023 # ## outgoing changesets between those revisions
#
# response.mustcontain("""<a href="/%s/changeset/2dda4e345facb0ccff1a191052dd1606dba6781d">r4:2dda4e345fac</a>""" % (HG_REPO))
# response.mustcontain("""<a href="/%s/changeset/6fff84722075f1607a30f436523403845f84cd9e">r5:6fff84722075</a>""" % (HG_REPO))
# response.mustcontain("""<a href="/%s/changeset/7d4bc8ec6be56c0f10425afb40b6fc315a4c25e7">r6:%s</a>""" % (HG_REPO, rev2))
#
# ## files
# response.mustcontain("""<a href="/%s/compare/rev@%s...rev@%s#C--9c390eb52cd6">vcs/backends/hg.py</a>""" % (HG_REPO, rev1, rev2))
# response.mustcontain("""<a href="/%s/compare/rev@%s...rev@%s#C--41b41c1f2796">vcs/backends/__init__.py</a>""" % (HG_REPO, rev1, rev2))
# response.mustcontain("""<a href="/%s/compare/rev@%s...rev@%s#C--2f574d260608">vcs/backends/base.py</a>""" % (HG_REPO, rev1, rev2))
# finally:
# RepoModel().delete(HG_FORK)
#
# def test_org_repo_new_commits_after_forking_simple_diff(self):
# self.log_user()
#
# repo1 = RepoModel().create_repo(repo_name='one', repo_type='hg',
# description='diff-test',
# owner=TEST_USER_ADMIN_LOGIN)
#
# Session().commit()
# r1_id = repo1.repo_id
# r1_name = repo1.repo_name
#
# #commit something initially !
# cs0 = ScmModel().create_node(
# repo=repo1.scm_instance, repo_name=r1_name,
# cs=EmptyChangeset(alias='hg'), user=TEST_USER_ADMIN_LOGIN,
# author=TEST_USER_ADMIN_LOGIN,
# message='commit1',
# content='line1',
# f_path='file1'
# )
# Session().commit()
# self.assertEqual(repo1.scm_instance.revisions, [cs0.raw_id])
# #fork the repo1
# repo2 = RepoModel().create_repo(repo_name='one-fork', repo_type='hg',
# description='compare-test',
# clone_uri=repo1.repo_full_path,
# owner=TEST_USER_ADMIN_LOGIN, fork_of='one')
# Session().commit()
# self.assertEqual(repo2.scm_instance.revisions, [cs0.raw_id])
# r2_id = repo2.repo_id
# r2_name = repo2.repo_name
#
# #make 3 new commits in fork
# cs1 = ScmModel().create_node(
# repo=repo2.scm_instance, repo_name=r2_name,
# cs=repo2.scm_instance[-1], user=TEST_USER_ADMIN_LOGIN,
# author=TEST_USER_ADMIN_LOGIN,
# message='commit1-fork',
# content='file1-line1-from-fork',
# f_path='file1-fork'
# )
# cs2 = ScmModel().create_node(
# repo=repo2.scm_instance, repo_name=r2_name,
# cs=cs1, user=TEST_USER_ADMIN_LOGIN,
# author=TEST_USER_ADMIN_LOGIN,
# message='commit2-fork',
# content='file2-line1-from-fork',
# f_path='file2-fork'
# )
# cs3 = ScmModel().create_node(
# repo=repo2.scm_instance, repo_name=r2_name,
# cs=cs2, user=TEST_USER_ADMIN_LOGIN,
# author=TEST_USER_ADMIN_LOGIN,
# message='commit3-fork',
# content='file3-line1-from-fork',
# f_path='file3-fork'
# )
#
# #compare !
# rev1 = 'default'
# rev2 = 'default'
# response = self.app.get(url(controller='compare', action='index',
# repo_name=r2_name,
# org_ref_type="branch",
# org_ref=rev1,
# other_ref_type="branch",
# other_ref=rev2,
# repo=r1_name,
# bundle=False,
# ))
#
# try:
Mads Kiilerich
html templates: escape '>' as '&gt;'
r3138 # #response.mustcontain('%s@%s -&gt; %s@%s' % (r2_name, rev1, r1_name, rev2))
Basic implementation of cherry picking changesets...
r3023 #
# #add new commit into parent !
# cs0 = ScmModel().create_node(
# repo=repo1.scm_instance, repo_name=r1_name,
# cs=EmptyChangeset(alias='hg'), user=TEST_USER_ADMIN_LOGIN,
# author=TEST_USER_ADMIN_LOGIN,
# message='commit2',
# content='line1',
# f_path='file2'
# )
# #compare !
# rev1 = 'default'
# rev2 = 'default'
# response = self.app.get(url(controller='compare', action='index',
# repo_name=r2_name,
# org_ref_type="branch",
# org_ref=rev1,
# other_ref_type="branch",
# other_ref=rev2,
# repo=r1_name,
# bundle=False
# ))
#
Mads Kiilerich
html templates: escape '>' as '&gt;'
r3138 # response.mustcontain('%s@%s -&gt; %s@%s' % (r2_name, rev1, r1_name, rev2))
Basic implementation of cherry picking changesets...
r3023 # response.mustcontain("""file1-line1-from-fork""")
# response.mustcontain("""file2-line1-from-fork""")
# response.mustcontain("""file3-line1-from-fork""")
# self.assertFalse("""<a href="#">file2</a>""" in response.body) # new commit from parent
# self.assertFalse("""line1-from-new-parent""" in response.body)
# finally:
# RepoModel().delete(r2_id)
# RepoModel().delete(r1_id)