Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 2.0, 2.0.1, and 2.0.2

stable repotreemodel: add function to iterate RepoItem from thg-reporegistry.xml

Changeset 5bd340383171

Parent c8e316f1c1d7

by Yuya Nishihara

Changes to 3 files · Browse files at 5bd340383171 Showing diff from parent c8e316f1c1d7 Diff from another changeset...

Change 1 of 1 Show Entire File tests/​fixtures/​reporegistry.xml Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?> +<reporegistry> + <treeitem> + <allgroup> + <repo root="/thg" shortname="thg" basenode="bac32db38e52fd49acb62b94730a55f4f4b0cdee"/> + <repo root="/mercurial" shortname="hg" basenode="9117c6561b0bd7792fa13b50d28239d51b78e51f"/> + </allgroup> + <group name="bar"> + <repo root="/python-vcs" shortname="python-vcs" basenode="b986218ba1c9b0d6a259fac9b050b1724ed8e545"/> + </group> + </treeitem> +</reporegistry>
Change 1 of 1 Show Entire File tests/​qt_repotreemodel_test.py Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@@ -0,0 +1,21 @@
+import os +from nose.tools import * +from mercurial import node +from tortoisehg.hgqt.repotreemodel import * +from tests import FIXTURES_DIR + +def openfixture(name, mode=QIODevice.ReadOnly): + path = os.path.join(FIXTURES_DIR, name) + f = QFile(path) + f.open(mode) + return f + +def test_iterrepoitemfromxml(): + f = openfixture('reporegistry.xml') + repos = list(iterRepoItemFromXml(f)) + f.close() + assert_equals(['/thg', '/mercurial', '/python-vcs'], + map(lambda e: e.rootpath(), repos)) + assert_equals('thg', repos[0].shortname()) + assert_equals('bac32db38e52fd49acb62b94730a55f4f4b0cdee', + node.hex(repos[0].basenode()))
 
52
53
54
 
 
 
 
 
 
55
56
57
 
52
53
54
55
56
57
58
59
60
61
62
63
@@ -52,6 +52,12 @@
  print str(xr.errorString())   return itemread   +def iterRepoItemFromXml(source, model=None): + xr = QXmlStreamReader(source) + while not xr.atEnd(): + t = xr.readNext() + if t == QXmlStreamReader.StartElement and xr.name() == 'repo': + yield undumpObject(xr, model)    class RepoTreeModel(QAbstractItemModel):   def __init__(self, openrepofunc, filename=None, parent=None):