Mercurial > farol > farolluz
changeset 31:1ea1a3c3c790
Add method to change a Group ID
author | Benoît Allard <benoit.allard@greenbone.net> |
---|---|
date | Mon, 27 Oct 2014 12:29:56 +0100 |
parents | b15022ae484a |
children | 9ca314026f59 |
files | farolluz/document.py tests/testGroupIdRename.py |
diffstat | 2 files changed, 39 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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 """
--- /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() +