- Package içerisinde de IsA birden fazla olabilir (PartOf olamaz tabi:)
- pisi.lyx içerisinde anlatılan merge ve override işlemi için "lame" iki fonksiyon yazdım. Elini ayağını düzeltiriz bunların yakında...
This commit is contained in:
+37
-3
@@ -89,6 +89,7 @@ class SourceInfo:
|
|||||||
self.name = getNodeText(node, "Name")
|
self.name = getNodeText(node, "Name")
|
||||||
self.homepage = getNodeText(node, "HomePage")
|
self.homepage = getNodeText(node, "HomePage")
|
||||||
self.packager = PackagerInfo(getNode(node, "Packager"))
|
self.packager = PackagerInfo(getNode(node, "Packager"))
|
||||||
|
self.summary = getNodeText(node, "Summary")
|
||||||
self.description = getNodeText(node, "Description")
|
self.description = getNodeText(node, "Description")
|
||||||
self.license = map(getNodeText, getAllNodes(node, "License"))
|
self.license = map(getNodeText, getAllNodes(node, "License"))
|
||||||
self.isa = map(getNodeText, getAllNodes(node, "IsA"))
|
self.isa = map(getNodeText, getAllNodes(node, "IsA"))
|
||||||
@@ -144,7 +145,7 @@ class PackageInfo(object):
|
|||||||
self.name = getNodeText(node, "Name")
|
self.name = getNodeText(node, "Name")
|
||||||
self.summary = getNodeText(node, "Summary")
|
self.summary = getNodeText(node, "Summary")
|
||||||
self.description = getNodeText(node, "Description")
|
self.description = getNodeText(node, "Description")
|
||||||
self.isa = getNodeText(node, "IsA")
|
self.isa = map(getNodeText, getAllNodes(node, "IsA"))
|
||||||
self.partof = getNodeText(node, "PartOf")
|
self.partof = getNodeText(node, "PartOf")
|
||||||
self.license = getNodeText(node, "License")
|
self.license = getNodeText(node, "License")
|
||||||
iDepElts = getAllNodes(node, "InstallDependencies/Dependency")
|
iDepElts = getAllNodes(node, "InstallDependencies/Dependency")
|
||||||
@@ -160,8 +161,8 @@ class PackageInfo(object):
|
|||||||
xml.addTextNodeUnder(node, "Name", self.name)
|
xml.addTextNodeUnder(node, "Name", self.name)
|
||||||
xml.addTextNodeUnder(node, "Summary", self.summary)
|
xml.addTextNodeUnder(node, "Summary", self.summary)
|
||||||
xml.addTextNodeUnder(node, "Description", self.description)
|
xml.addTextNodeUnder(node, "Description", self.description)
|
||||||
if self.isa:
|
for isa in self.isa:
|
||||||
xml.addTextNodeUnder(node, "IsA", self.isa)
|
xml.addTextNodeUnder(node, "IsA", isa)
|
||||||
if self.partof:
|
if self.partof:
|
||||||
xml.addTextNodeUnder(node, "PartOf", self.partof)
|
xml.addTextNodeUnder(node, "PartOf", self.partof)
|
||||||
for dep in self.installDeps:
|
for dep in self.installDeps:
|
||||||
@@ -204,8 +205,41 @@ class SpecFile(XmlFile):
|
|||||||
packageElts = self.getAllNodes("Package")
|
packageElts = self.getAllNodes("Package")
|
||||||
self.packages = [PackageInfo(p) for p in packageElts]
|
self.packages = [PackageInfo(p) for p in packageElts]
|
||||||
|
|
||||||
|
self.doMerges()
|
||||||
|
self.doOverrides()
|
||||||
|
|
||||||
self.unlink()
|
self.unlink()
|
||||||
|
|
||||||
|
def doOverrides(self):
|
||||||
|
"""Override tags from Source in Packages. Some tags in Packages
|
||||||
|
overrides the tags from Source. There is a more detailed
|
||||||
|
description in documents."""
|
||||||
|
|
||||||
|
for pkg in self.packages:
|
||||||
|
|
||||||
|
if not pkg.partof:
|
||||||
|
pkg.paftof = self.source.partof
|
||||||
|
|
||||||
|
if not pkg.license:
|
||||||
|
pkg.licence = self.source.partof
|
||||||
|
|
||||||
|
def doMerges(self):
|
||||||
|
"""Merge tags from Source in Packages. Some tags in Packages merged
|
||||||
|
with the tags from Source. There is a more detailed
|
||||||
|
description in documents."""
|
||||||
|
|
||||||
|
for pkg in self.packages:
|
||||||
|
|
||||||
|
if not pkg.summary:
|
||||||
|
pkg.summary = self.source.summary
|
||||||
|
|
||||||
|
if not pkg.description:
|
||||||
|
pkg.description = self.source.description
|
||||||
|
|
||||||
|
if not pkg.isa:
|
||||||
|
pkg.isa = self.source.isa
|
||||||
|
|
||||||
|
|
||||||
def verify(self):
|
def verify(self):
|
||||||
"""Verify PSPEC structures, are they what we want of them?"""
|
"""Verify PSPEC structures, are they what we want of them?"""
|
||||||
ret = True
|
ret = True
|
||||||
|
|||||||
@@ -38,6 +38,29 @@ class SpecFileTestCase(unittest.TestCase):
|
|||||||
if not matched:
|
if not matched:
|
||||||
self.fail("Failed to match pathname: %s" %pn)
|
self.fail("Failed to match pathname: %s" %pn)
|
||||||
|
|
||||||
|
def testIsAPartOf(self):
|
||||||
|
# test existence in Source
|
||||||
|
if not "library:util:optparser" in self.spec.source.isa:
|
||||||
|
self.fail("Failed to match isA in Source")
|
||||||
|
if not isinstance(self.spec.source.isa, list):
|
||||||
|
self.fail("source.isa is not a list, but it must be...")
|
||||||
|
|
||||||
|
if "rpm:archive" != self.spec.source.partof:
|
||||||
|
self.fail("Failed to match PartOf in Source")
|
||||||
|
|
||||||
|
# test existence in Package
|
||||||
|
pkg = self.spec.packages[0]
|
||||||
|
if not "library:util:optparser" in pkg.isa:
|
||||||
|
self.fail("Failed to match isA....")
|
||||||
|
if not isinstance(pkg.isa, list):
|
||||||
|
self.fail("source.isa is not a list, but it must be...")
|
||||||
|
|
||||||
|
print pkg.partof
|
||||||
|
if "rpm:archive" != pkg.partof:
|
||||||
|
self.fail("Failed to match PartOf")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def testCopy(self):
|
def testCopy(self):
|
||||||
util.check_dir(config.tmp_dir())
|
util.check_dir(config.tmp_dir())
|
||||||
self.spec.read("samples/popt/popt.pspec")
|
self.spec.read("samples/popt/popt.pspec")
|
||||||
|
|||||||
Reference in New Issue
Block a user