• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

allura


Commit MetaInfo

Revisión5ae71201091086e991e419746583e543e8491da9 (tree)
Tiempo2011-10-06 02:14:56
AutorRick Copeland <rcopeland@geek...>
CommiterRick Copeland

Log Message

[#2020] Add tests for new Hg repo stuff

Signed-off-by: Rick Copeland <rcopeland@geek.net>

Cambiar Resumen

Diferencia incremental

--- a/Allura/allura/model/repo.py
+++ b/Allura/allura/model/repo.py
@@ -113,6 +113,10 @@ class RepoObject(object):
113113 def legacy(self):
114114 return Object(object_id=self._id)
115115
116+ @property
117+ def object_id(self):
118+ return self._id
119+
116120 class Commit(RepoObject):
117121 # Ephemeral attrs
118122 repo=None
@@ -229,7 +233,12 @@ class Tree(RepoObject):
229233 for x in self.blob_ids:
230234 if README_RE.match(x.name):
231235 name = x.name
232- text = self.repo.open_blob(Object(object_id=x.id)).read()
236+ obj = Object(
237+ object_id=x.id,
238+ path=lambda:self.path() + x['name'],
239+ commit=Object(
240+ object_id=self.commit._id))
241+ text = self.repo.open_blob(obj).read()
233242 text = h.really_unicode(text)
234243 break
235244 if text == '':
--- a/Allura/allura/model/repo_refresh.py
+++ b/Allura/allura/model/repo_refresh.py
@@ -66,6 +66,7 @@ def refresh_repo(repo, all_commits=False, notify=True):
6666
6767 def refresh_commit_trees(ci, cache):
6868 '''Refresh the list of trees included withn a commit'''
69+ if ci.tree_id is None: return
6970 trees_doc = TreesDoc(dict(
7071 _id=ci._id,
7172 tree_ids = list(trees(ci.tree_id, cache))))
@@ -228,6 +229,7 @@ def unknown_commit_ids(all_commit_ids):
228229
229230 def compute_diffs(repo_id, tree_cache, rhs_ci):
230231 '''compute simple differences between a commit and its first parent'''
232+ if rhs_ci.tree_id is None: return
231233 def _walk_tree(tree, tree_index):
232234 for x in tree.blob_ids: yield x.id
233235 for x in tree.other_ids: yield x.id
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -51,7 +51,9 @@ class TestNewGit(unittest.TestCase):
5151 ci.count_revisions()
5252 ci.context()
5353 self.rev.tree.ls()
54- print self.rev.tree.readme()
54+ # print self.rev.tree.readme()
55+ assert self.rev.tree.readme() == (
56+ 'README', '<pre>This is readme\nAnother Line\n</pre>')
5557 assert self.rev.tree.path() == '/'
5658 assert self.rev.tree.url() == (
5759 '/p/test/src/ci/'
--- a/ForgeHg/forgehg/tests/model/test_repository.py
+++ b/ForgeHg/forgehg/tests/model/test_repository.py
@@ -7,8 +7,60 @@ from ming.orm import ThreadLocalORMSession
77
88 from alluratest.controller import setup_basic_test, setup_global_objects
99 from allura.lib import helpers as h
10+from allura import model as M
1011 from forgehg import model as HM
1112
13+class TestNewRepo(unittest.TestCase):
14+
15+ def setUp(self):
16+ setup_basic_test()
17+ setup_global_objects()
18+ h.set_context('test', 'src')
19+ repo_dir = pkg_resources.resource_filename(
20+ 'forgehg', 'tests/data')
21+ self.repo = HM.Repository(
22+ name='testrepo.hg',
23+ fs_path=repo_dir,
24+ url_path = '/test/',
25+ tool = 'hg',
26+ status = 'creating')
27+ self.repo.refresh()
28+ self.rev = M.repo.Commit.query.get(_id=self.repo.heads[0]['object_id'])
29+ self.rev.repo = self.repo
30+ ThreadLocalORMSession.flush_all()
31+ ThreadLocalORMSession.close_all()
32+
33+ def test_commit(self):
34+ assert self.rev.primary() is self.rev
35+ assert self.rev.index_id().startswith('allura/model/repo/Commit#')
36+ self.rev.author_url
37+ self.rev.committer_url
38+ assert self.rev.tree._id == self.rev.tree_id
39+ assert self.rev.summary == self.rev.message.splitlines()[0]
40+ assert self.rev.shorthand_id() == '[1c7eb5]'
41+ assert self.rev.symbolic_ids == (['default'], ['tip'])
42+ assert self.rev.url() == (
43+ '/p/test/src/ci/'
44+ '1c7eb55bbd66ff45906b4a25d4b403899e0ffff1/')
45+ all_cis = self.rev.log(0, 1000)
46+ assert len(all_cis) == 5
47+ assert self.rev.log(1,1000) == all_cis[1:]
48+ assert self.rev.log(0,3) == all_cis[:3]
49+ assert self.rev.log(1,2) == all_cis[1:3]
50+ for ci in all_cis:
51+ ci.count_revisions()
52+ ci.context()
53+ self.rev.tree.ls()
54+ assert self.rev.tree.readme() == (
55+ 'README', '<pre>This is readme\nAnother line\n</pre>')
56+ assert self.rev.tree.path() == '/'
57+ assert self.rev.tree.url() == (
58+ '/p/test/src/ci/'
59+ '1c7eb55bbd66ff45906b4a25d4b403899e0ffff1/'
60+ 'tree/')
61+ self.rev.tree.by_name['README']
62+ assert self.rev.tree.is_blob('README') == True
63+
1264 class TestHgRepo(unittest.TestCase):
1365
1466 def setUp(self):
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -240,7 +240,7 @@ class SVNImplementation(M.RepositoryImplementation):
240240 lst[path.action].append(h.really_unicode(path.path))
241241
242242 def refresh_commit_info(self, oid, seen_object_ids):
243- from alllura.model.repo import CommitDoc
243+ from allura.model.repo import CommitDoc
244244 if CommitDoc.m.find(dict(_id=oid)).count():
245245 return False
246246 try:
@@ -265,7 +265,7 @@ class SVNImplementation(M.RepositoryImplementation):
265265 tree_id=None,
266266 committed=user,
267267 authored=user,
268- message=log.entry.message,
268+ message=log_entry.message,
269269 parent_ids=[],
270270 child_ids=[]))
271271 if revno > 1:
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -3,14 +3,62 @@ import shutil
33 import unittest
44 import pkg_resources
55
6-from pylons import c
7-
86 from ming.orm import ThreadLocalORMSession
97
108 from alluratest.controller import setup_basic_test, setup_global_objects
119 from allura.lib import helpers as h
10+from allura import model as M
1211 from forgesvn import model as SM
1312
13+class TestNewRepo(unittest.TestCase):
14+
15+ def setUp(self):
16+ setup_basic_test()
17+ setup_global_objects()
18+ h.set_context('test', 'src')
19+ repo_dir = pkg_resources.resource_filename(
20+ 'forgesvn', 'tests/data/')
21+ self.repo = SM.Repository(
22+ name='testsvn',
23+ fs_path=repo_dir,
24+ url_path = '/test/',
25+ tool = 'svn',
26+ status = 'creating')
27+ self.repo.refresh()
28+ self.rev = M.repo.Commit.query.get(_id=self.repo.heads[0]['object_id'])
29+ self.rev.repo = self.repo
30+ ThreadLocalORMSession.flush_all()
31+ ThreadLocalORMSession.close_all()
32+
33+ def test_commit(self):
34+ assert self.rev.primary() is self.rev
35+ assert self.rev.index_id().startswith('allura/model/repo/Commit#')
36+ self.rev.author_url
37+ self.rev.committer_url
38+ assert self.rev.summary == self.rev.message.splitlines()[0]
39+ assert self.rev.shorthand_id() == '[r5]'
40+ assert self.rev.symbolic_ids == ([], [])
41+ assert self.rev.url() == (
42+ '/p/test/src/5/')
43+ all_cis = self.rev.log(0, 1000)
44+ assert len(all_cis) == 5
45+ assert self.rev.log(1,1000) == all_cis[1:]
46+ assert self.rev.log(0,3) == all_cis[:3]
47+ assert self.rev.log(1,2) == all_cis[1:3]
48+ for ci in all_cis:
49+ ci.count_revisions()
50+ ci.context()
51+ self.rev.tree.ls()
52+ assert self.rev.tree.readme() == (
53+ 'README', '<pre>This is readme\nAnother line\n</pre>')
54+ assert self.rev.tree.path() == '/'
55+ assert self.rev.tree.url() == (
56+ '/p/test/src/ci/'
57+ '1c7eb55bbd66ff45906b4a25d4b403899e0ffff1/'
58+ 'tree/')
59+ self.rev.tree.by_name['README']
60+ assert self.rev.tree.is_blob('README') == True
61+
1462 class TestSVNRepo(unittest.TestCase):
1563
1664 def setUp(self):