[PATCH 32 of 54] Add method to change a Group ID
Wald Commits
scm-commit at wald.intevation.org
Wed Jan 7 10:56:49 CET 2015
# HG changeset patch
# User Benoît Allard <benoit.allard at greenbone.net>
# Date 1414409396 -3600
# Node ID 1ea1a3c3c7907fa04af8b819a20c689c2d1f6caa
# Parent b15022ae484a1dc6ab44d1364c1591892656e3a6
Add method to change a Group ID
diff -r b15022ae484a -r 1ea1a3c3c790 farolluz/document.py
--- a/farolluz/document.py Mon Oct 27 12:29:37 2014 +0100
+++ b/farolluz/document.py Mon Oct 27 12:29:56 2014 +0100
@@ -306,13 +306,22 @@
item._productids.remove(old)
item._productids.append(new)
+ def mentionsGroupId(self, groupid):
+ for vulnerability in self._vulnerabilities:
+ for item in vulnerability.mentionsGroupId(groupid):
+ yield item
+
def isGroupOrphan(self, groupid):
""" Returns if a group can be safely deleted """
- for vulnerability in self._vulnerabilities:
- if vulnerability.isMentioningGroupId(groupid):
- return False
+ for _ in self.mentionsGroupId(groupid):
+ return False
return True
+ def changeGroupID(self, old, new):
+ for item in self.mentionsGroupId(old):
+ item._groupids.remove(old)
+ item._groupids.append(new)
+
def isProductTreeOrphan(self):
""" Difference with the previous method is that we don;t care about
inter-producttree references """
diff -r b15022ae484a -r 1ea1a3c3c790 tests/testGroupIdRename.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/testGroupIdRename.py Mon Oct 27 12:29:56 2014 +0100
@@ -0,0 +1,27 @@
+from datetime import datetime
+
+from tests.utils import TestCase
+from farolluz.cvrf import CVRFFullProductName, CVRFGroup, CVRFVulnerability, CVRFThreat
+
+class TestGroupIdRename(TestCase):
+
+ def testChangeGroupId(self):
+ ptree = self.doc.createProductTree()
+ prod1 = CVRFFullProductName('1', 'a', ptree)
+ ptree.addProduct(prod1)
+ prod2 = CVRFFullProductName('2', 'b', ptree)
+ ptree.addProduct(prod2)
+ grp = CVRFGroup('GRP-1')
+ grp.addProductID('1')
+ grp.addProductID('2')
+ ptree.addGroup(grp)
+ vuln = CVRFVulnerability(1)
+ th = CVRFThreat('Impact', 'bad !')
+ th.addGroupID('GRP-1')
+ vuln.addThreat(th)
+ self.doc.addVulnerability(vuln)
+ self._validate()
+ grp._productid = 'GRP-2'
+ self.doc.changeProductID('GRP-1', 'GRP-2')
+ self._validate()
+
More information about the Farol-commits
mailing list