def testFiltersHuntsByCreator(self): for i in range(5): self.CreateHunt( description="foo_hunt_%d" % i, token=access_control.ACLToken(username="******")) for i in range(3): self.CreateHunt( description="bar_hunt_%d" % i, token=access_control.ACLToken(username="******")) result = self.handler.Handle( hunt_plugin.ApiListHuntsArgs( created_by="user-foo", active_within="1d"), token=self.token) self.assertEqual(len(result.items), 5) for item in result.items: self.assertEqual(item.creator, "user-foo") result = self.handler.Handle( hunt_plugin.ApiListHuntsArgs( created_by="user-bar", active_within="1d"), token=self.token) self.assertEqual(len(result.items), 3) for item in result.items: self.assertEqual(item.creator, "user-bar")
def testOffsetIsRelativeToFilteredResultsWhenFilterIsPresent(self): for i in range(5): self.CreateHunt(description="foo_hunt_%d" % i) for i in range(3): self.CreateHunt(description="bar_hunt_%d" % i) result = self.handler.Handle(hunt_plugin.ApiListHuntsArgs( description_contains="bar", active_within="1d", offset=1), token=self.token) self.assertEqual(len(result.items), 2) for item in result.items: self.assertTrue("bar" in item.description) result = self.handler.Handle(hunt_plugin.ApiListHuntsArgs( description_contains="bar", active_within="1d", offset=2), token=self.token) self.assertEqual(len(result.items), 1) for item in result.items: self.assertTrue("bar" in item.description) result = self.handler.Handle(hunt_plugin.ApiListHuntsArgs( description_contains="bar", active_within="1d", offset=3), token=self.token) self.assertEqual(len(result.items), 0)
def testRaisesIfDescriptionContainsFilterUsedWithoutActiveWithinFilter( self): self.assertRaises( ValueError, self.handler.Handle, hunt_plugin.ApiListHuntsArgs(description_contains="foo"), token=self.token)
def Run(self): replace = {} for i in range(0, 2): with test_lib.FakeTime((1 + i) * 1000): with self.CreateHunt(description="hunt_%d" % i) as hunt_obj: if i % 2: hunt_obj.Stop() replace[hunt_obj.urn.Basename()] = "H:00000%d" % i self.Check("ListHunts", args=hunt_plugin.ApiListHuntsArgs(), replace=replace) self.Check("ListHunts", args=hunt_plugin.ApiListHuntsArgs(count=1), replace=replace) self.Check("ListHunts", args=hunt_plugin.ApiListHuntsArgs(offset=1, count=1), replace=replace)
def testHandlesListOfHuntObjects(self): for i in range(10): self.CreateHunt(description="hunt_%d" % i) result = self.handler.Handle(hunt_plugin.ApiListHuntsArgs(), token=self.token) descriptions = set(r.description for r in result.items) self.assertEqual(len(descriptions), 10) for i in range(10): self.assertTrue("hunt_%d" % i in descriptions)
def testFiltersHuntsByDescriptionContainsMatch(self): for i in range(5): self.CreateHunt(description="foo_hunt_%d" % i) for i in range(3): self.CreateHunt(description="bar_hunt_%d") result = self.handler.Handle(hunt_plugin.ApiListHuntsArgs( description_contains="foo", active_within="1d"), token=self.token) self.assertEqual(len(result.items), 5) for item in result.items: self.assertTrue("foo" in item.description) result = self.handler.Handle(hunt_plugin.ApiListHuntsArgs( description_contains="bar", active_within="1d"), token=self.token) self.assertEqual(len(result.items), 3) for item in result.items: self.assertTrue("bar" in item.description)
def testFiltersHuntsByDescriptionContainsMatch(self): for i in range(5): self.CreateHunt(description="foo_hunt_%d" % i) for i in range(3): self.CreateHunt(description="bar_hunt_%d") result = self.handler.Render(hunt_plugin.ApiListHuntsArgs( description_contains="foo", active_within="1d"), token=self.token) self.assertEqual(len(result["items"]), 5) for item in result["items"]: self.assertTrue("foo" in item["summary"]["description"]["value"]) result = self.handler.Render(hunt_plugin.ApiListHuntsArgs( description_contains="bar", active_within="1d"), token=self.token) self.assertEqual(len(result["items"]), 3) for item in result["items"]: self.assertTrue("bar" in item["summary"]["description"]["value"])
def testHuntListIsSortedInReversedCreationTimestampOrder(self): for i in range(1, 11): with test_lib.FakeTime(i * 1000): self.CreateHunt(description="hunt_%d" % i) result = self.handler.Handle( hunt_plugin.ApiListHuntsArgs(), token=self.token) create_times = [r.created.AsMicroSecondsFromEpoch() for r in result.items] self.assertEqual(len(create_times), 10) for index, expected_time in enumerate(reversed(range(1, 11))): self.assertEqual(create_times[index], expected_time * 1000000000)
def testRendersListOfHuntObjects(self): for i in range(10): self.CreateHunt(description="hunt_%d" % i) result = self.handler.Render(hunt_plugin.ApiListHuntsArgs(), token=self.token) descriptions = set(r["summary"]["description"]["value"] for r in result["items"]) self.assertEqual(len(descriptions), 10) for i in range(10): self.assertTrue("hunt_%d" % i in descriptions)
def testHandlesSubrangeOfListOfHuntObjects(self): for i in range(1, 11): with test_lib.FakeTime(i * 1000): self.CreateHunt(description="hunt_%d" % i) result = self.handler.Handle( hunt_plugin.ApiListHuntsArgs(offset=2, count=2), token=self.token) create_times = [r.created.AsMicroSecondsFromEpoch() for r in result.items] self.assertEqual(len(create_times), 2) self.assertEqual(create_times[0], 8 * 1000000000) self.assertEqual(create_times[1], 7 * 1000000000)
def testFiltersHuntsByActivityTime(self): for i in range(1, 11): with test_lib.FakeTime(i * 60): self.CreateHunt(description="hunt_%d" % i) with test_lib.FakeTime(10 * 60 + 1): result = self.handler.Handle( hunt_plugin.ApiListHuntsArgs(active_within="2m"), token=self.token) create_times = [r.created for r in result.items] self.assertEqual(len(create_times), 2) self.assertEqual(create_times[0], 10 * 60 * 1000000) self.assertEqual(create_times[1], 9 * 60 * 1000000)
def testHuntListIsSortedInReversedCreationTimestampOrder(self): for i in range(1, 11): with test_lib.FakeTime(i * 1000): self.CreateHunt(description="hunt_%d" % i) result = self.handler.Render(hunt_plugin.ApiListHuntsArgs(), token=self.token) create_times = [ r["summary"]["create_time"]["value"] for r in result["items"] ] self.assertEqual(len(create_times), 10) for index, expected_time in enumerate(reversed(range(1, 11))): self.assertEqual(create_times[index], expected_time * 1000000000)
def testRendersSubrangeOfListOfHuntObjects(self): for i in range(1, 11): with test_lib.FakeTime(i * 1000): self.CreateHunt(description="hunt_%d" % i) result = self.handler.Render(hunt_plugin.ApiListHuntsArgs(offset=2, count=2), token=self.token) create_times = [ r["summary"]["create_time"]["value"] for r in result["items"] ] self.assertEqual(len(create_times), 2) self.assertEqual(create_times[0], 8 * 1000000000) self.assertEqual(create_times[1], 7 * 1000000000)
def testRaisesIfCreatedByFilterUsedWithoutActiveWithinFilter(self): self.assertRaises(ValueError, self.handler.Handle, hunt_plugin.ApiListHuntsArgs(created_by="user-bar"), token=self.token)