def testRegexForStringifiedValueMatchMatchesLabelsInList(self): labels_list = rdfvalue.AFF4ObjectLabelsList() labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="ein", owner="GRR")) labels_list.AddLabel( rdfvalue.AFF4ObjectLabel(name="zwei", owner="test")) labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="drei", owner="GRR")) labels_list.AddLabel( rdfvalue.AFF4ObjectLabel(name="vier", owner="test")) self.assertTrue( re.match( rdfvalue.AFF4ObjectLabelsList.RegexForStringifiedValueMatch( "ein"), str(labels_list))) self.assertTrue( re.match( rdfvalue.AFF4ObjectLabelsList.RegexForStringifiedValueMatch( "zwei"), str(labels_list))) self.assertTrue( re.match( rdfvalue.AFF4ObjectLabelsList.RegexForStringifiedValueMatch( "drei"), str(labels_list))) self.assertTrue( re.match( rdfvalue.AFF4ObjectLabelsList.RegexForStringifiedValueMatch( "vier"), str(labels_list)))
def testStringifiedRepresentationIsSorted(self): labels_list = rdfvalue.AFF4ObjectLabelsList() labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="foo", owner="GRR")) labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="bar", owner="test")) self.assertEqual(utils.SmartStr(labels_list), "bar,foo")
def testStringifiedValueIsLabelsNamesWithoutOwners(self): labels_list = rdfvalue.AFF4ObjectLabelsList() labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="bar", owner="GRR")) labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="foo", owner="test")) self.assertEqual(utils.SmartStr(labels_list), "bar,foo")
def testAddLabelAddsLabelWithSameNameButDifferentOwner(self): labels_list = rdfvalue.AFF4ObjectLabelsList() labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="foo", owner="test")) self.assertEqual(len(labels_list.labels), 1) labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="foo", owner="GRR")) self.assertEqual(len(labels_list.labels), 2)
def testStringifiedValueDoesNotHaveDuplicates(self): labels_list = rdfvalue.AFF4ObjectLabelsList() labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="foo", owner="GRR")) labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="bar", owner="GRR")) labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="foo", owner="test")) self.assertEqual(utils.SmartStr(labels_list), "bar,foo")
def testAddLabelDoesNotAddLabelWithSameNameAndOwner(self): labels_list = rdfvalue.AFF4ObjectLabelsList() labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="foo", owner="test")) self.assertEqual(len(labels_list.labels), 1) labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="foo", owner="test")) self.assertEqual(len(labels_list.labels), 1)
def GenerateSample(self, number=0): label1 = rdfvalue.AFF4ObjectLabel( name="foo_%d" % number, owner="test", timestamp=rdfvalue.RDFDatetime().FromSecondsFromEpoch(42)) label2 = rdfvalue.AFF4ObjectLabel( name="bar_%d" % number, owner="test", timestamp=rdfvalue.RDFDatetime().FromSecondsFromEpoch(42)) return rdfvalue.AFF4ObjectLabelsList(labels=[label1, label2])
def testGetSortedLabelSet(self): labels_list = rdfvalue.AFF4ObjectLabelsList() labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="foo", owner="test")) labels_list.AddLabel( rdfvalue.AFF4ObjectLabel(name="foo2", owner="test2")) labels_list.AddLabel( rdfvalue.AFF4ObjectLabel(name="foo3", owner="test2")) self.assertItemsEqual(labels_list.GetLabelNames(), ["foo", "foo2", "foo3"]) self.assertItemsEqual(labels_list.GetLabelNames(owner="test2"), ["foo2", "foo3"]) self.assertEqual(labels_list.GetLabelNames(owner="test4"), [])
def testRegexForStringifiedValueDoesNotMatchLabelsNotInList(self): labels_list = rdfvalue.AFF4ObjectLabelsList() labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="ein", owner="GRR")) labels_list.AddLabel(rdfvalue.AFF4ObjectLabel(name="zwei", owner="test")) self.assertFalse(re.match( rdfvalue.AFF4ObjectLabelsList.RegexForStringifiedValueMatch("e"), str(labels_list))) self.assertFalse(re.match( rdfvalue.AFF4ObjectLabelsList.RegexForStringifiedValueMatch("in"), str(labels_list))) self.assertFalse(re.match( rdfvalue.AFF4ObjectLabelsList.RegexForStringifiedValueMatch("a.zwer"), str(labels_list))) self.assertFalse(re.match( rdfvalue.AFF4ObjectLabelsList.RegexForStringifiedValueMatch("ein."), str(labels_list)))
def GetClientLabels(self, client_id): fd = aff4.FACTORY.Open(client_id, aff4_type="VFSGRRClient", token=self.token) return list( fd.Get(fd.Schema.LABELS, rdfvalue.AFF4ObjectLabelsList()).labels)