Files
@ 4c13cedbde93
Branch filter:
Location: kallithea/rhodecode/tests/functional/test_compare.py - annotation
4c13cedbde93
9.7 KiB
text/x-python
Added tag v1.4.0 for changeset 9ae95fdeca18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | b2a2868d7bec 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 b2a2868d7bec f29469677319 b2a2868d7bec b2a2868d7bec f29469677319 f29469677319 2b6939a77052 2b6939a77052 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 8eab81115660 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 f29469677319 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 2b6939a77052 | from rhodecode.tests import *
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
class TestCompareController(TestController):
def test_index_tag(self):
self.log_user()
tag1 = '0.1.3'
tag2 = '0.1.2'
response = self.app.get(url(controller='compare', action='index',
repo_name=HG_REPO,
org_ref_type="tag",
org_ref=tag1,
other_ref_type="tag",
other_ref=tag2,
))
response.mustcontain('%s@%s -> %s@%s' % (HG_REPO, tag1, HG_REPO, tag2))
## outgoing changesets between tags
response.mustcontain('''<a href="/%s/changeset/17544fbfcd33ffb439e2b728b5d526b1ef30bfcf">r120:17544fbfcd33</a>''' % HG_REPO)
response.mustcontain('''<a href="/%s/changeset/36e0fc9d2808c5022a24f49d6658330383ed8666">r119:36e0fc9d2808</a>''' % HG_REPO)
response.mustcontain('''<a href="/%s/changeset/bb1a3ab98cc45cb934a77dcabf87a5a598b59e97">r118:bb1a3ab98cc4</a>''' % HG_REPO)
response.mustcontain('''<a href="/%s/changeset/41fda979f02fda216374bf8edac4e83f69e7581c">r117:41fda979f02f</a>''' % HG_REPO)
response.mustcontain('''<a href="/%s/changeset/9749bfbfc0d2eba208d7947de266303b67c87cda">r116:9749bfbfc0d2</a>''' % HG_REPO)
response.mustcontain('''<a href="/%s/changeset/70d4cef8a37657ee4cf5aabb3bd9f68879769816">r115:70d4cef8a376</a>''' % HG_REPO)
response.mustcontain('''<a href="/%s/changeset/c5ddebc06eaaba3010c2d66ea6ec9d074eb0f678">r112:c5ddebc06eaa</a>''' % HG_REPO)
## files diff
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--1c5cf9e91c12">docs/api/utils/index.rst</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--e3305437df55">test_and_report.sh</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--c8e92ef85cd1">.hgignore</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--6e08b694d687">.hgtags</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--2c14b00f3393">docs/api/index.rst</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--430ccbc82bdf">vcs/__init__.py</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--9c390eb52cd6">vcs/backends/hg.py</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--ebb592c595c0">vcs/utils/__init__.py</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--7abc741b5052">vcs/utils/annotate.py</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--2ef0ef106c56">vcs/utils/diffs.py</a></div>''' % (HG_REPO, tag1, tag2))
response.mustcontain('''<div class="node"><a href="/%s/compare/tag@%s...tag@%s#C--3150cb87d4b7">vcs/utils/lazy.py</a></div>''' % (HG_REPO, tag1, tag2))
def test_index_branch(self):
self.log_user()
response = self.app.get(url(controller='compare', action='index',
repo_name=HG_REPO,
org_ref_type="branch",
org_ref='default',
other_ref_type="branch",
other_ref='default',
))
response.mustcontain('%s@default -> %s@default' % (HG_REPO, HG_REPO))
# branch are equal
response.mustcontain('<tr><td>No changesets</td></tr>')
def test_compare_revisions(self):
self.log_user()
rev1 = '3d8f361e72ab'
rev2 = 'b986218ba1c9'
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,
))
response.mustcontain('%s@%s -> %s@%s' % (HG_REPO, rev1, HG_REPO, rev2))
## outgoing changesets between those revisions
response.mustcontain("""<a href="/%s/changeset/3d8f361e72ab303da48d799ff1ac40d5ac37c67e">r1:%s</a>""" % (HG_REPO, rev1))
## files
response.mustcontain("""<a href="/%s/compare/rev@%s...rev@%s#C--c8e92ef85cd1">.hgignore</a>""" % (HG_REPO, rev1, rev2))
def test_compare_remote_repos(self):
self.log_user()
form_data = dict(
repo_name=HG_FORK,
repo_name_full=HG_FORK,
repo_group=None,
repo_type='hg',
description='',
private=False,
copy_permissions=False,
landing_rev='tip',
update_after_clone=False,
fork_parent_id=Repository.get_by_repo_name(HG_REPO),
)
RepoModel().create_fork(form_data, cur_user=TEST_USER_ADMIN_LOGIN)
Session().commit()
rev1 = '7d4bc8ec6be5'
rev2 = '56349e29c2af'
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:
response.mustcontain('%s@%s -> %s@%s' % (HG_REPO, rev1, HG_FORK, rev2))
## outgoing changesets between those revisions
response.mustcontain("""<a href="/%s/changeset/7d4bc8ec6be56c0f10425afb40b6fc315a4c25e7">r6:%s</a>""" % (HG_REPO, rev1))
response.mustcontain("""<a href="/%s/changeset/6fff84722075f1607a30f436523403845f84cd9e">r5:6fff84722075</a>""" % (HG_REPO))
response.mustcontain("""<a href="/%s/changeset/2dda4e345facb0ccff1a191052dd1606dba6781d">r4:2dda4e345fac</a>""" % (HG_REPO))
## 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_compare_extra_commits(self):
self.log_user()
repo1 = RepoModel().create_repo(repo_name='one', repo_type='hg',
description='diff-test',
owner=TEST_USER_ADMIN_LOGIN)
repo2 = RepoModel().create_repo(repo_name='one-fork', repo_type='hg',
description='diff-test',
owner=TEST_USER_ADMIN_LOGIN)
Session().commit()
r1_id = repo1.repo_id
r1_name = repo1.repo_name
r2_id = repo2.repo_id
r2_name = repo2.repo_name
#commit something !
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'
)
cs0_prim = ScmModel().create_node(
repo=repo2.scm_instance, repo_name=r2_name,
cs=EmptyChangeset(alias='hg'), user=TEST_USER_ADMIN_LOGIN,
author=TEST_USER_ADMIN_LOGIN,
message='commit1',
content='line1',
f_path='file1'
)
cs1 = ScmModel().commit_change(
repo=repo2.scm_instance, repo_name=r2_name,
cs=cs0_prim, user=TEST_USER_ADMIN_LOGIN, author=TEST_USER_ADMIN_LOGIN,
message='commit2',
content='line1\nline2',
f_path='file1'
)
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
))
try:
response.mustcontain('%s@%s -> %s@%s' % (r2_name, rev1, r1_name, rev2))
response.mustcontain("""<div class="message">commit2</div>""")
response.mustcontain("""<a href="/%s/changeset/%s">r1:%s</a>""" % (r2_name, cs1.raw_id, cs1.short_id))
## files
response.mustcontain("""<a href="/%s/compare/branch@%s...branch@%s#C--826e8142e6ba">file1</a>""" % (r2_name, rev1, rev2))
finally:
RepoModel().delete(r1_id)
RepoModel().delete(r2_id)
|