Changeset 5bd340383171…
Parent c8e316f1c1d7…
by
Changes to 3 files · Browse files at 5bd340383171 Showing diff from parent c8e316f1c1d7 Diff from another changeset...
|
@@ -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>
|
|
@@ -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,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):
|
Loading...