def testSearchingNames(self): self.assertEqual( tuple(searchPairs(self.pairs, name="A")), (self.pairs.index(self.a1), self.pairs.index(self.a2)) ) self.assertEqual( tuple(searchPairs(self.pairs, name="G", nameMatch=NZ_MATCH)), (self.pairs.index(self.g1), self.pairs.index(self.g2)) )
def testSearchingWithNamesAndValuesThatAreNotStringsRaisesTypeError(self): self.assertRaises( TypeError, lambda h, n: tuple(searchPairs(h, name=n)), self.pairs, 1 ) self.assertRaises( TypeError, lambda h, v: tuple(searchPairs(h, value=v)), self.pairs, u"" )
def testSearchingForANonIntegerNumberOfResultsRaisesTypeError(self): self.assertRaises( TypeError, lambda h, name, n: tuple(searchPairs(h, name=name, n=n)), self.pairs, "A", 1e10 )
def testSearchingForANegativeNumberOfResultsRaisesValueError(self): self.assertRaises( ValueError, lambda h, name, n: tuple(searchPairs(h, name=name, n=n)), self.pairs, "A", -1 )
def testSearchingsWithoutANameOrValueRaisesValueError(self): self.assertRaises( ValueError, lambda h, n, v: tuple(searchPairs(h, name=n, value=v)), self.pairs, None, None )
def testSearchingWithTheNumberOfResultsConstrained(self): s = tuple(searchPairs(self.pairs, name="A", n=1)) self.assertEqual(len(s), 1) self.assertEqual(s[0], self.pairs.index(self.a1)) self.assertEqual( len(tuple(searchPairs(self.pairs, name="A", n=2))), 2 ) self.assertEqual( len(tuple(searchPairs(self.pairs, name="A", n=3))), 2 ) self.assertEqual( len(tuple(searchPairs(self.pairs, name="NotThere", n=100))), 0 )
def searchHeaders(pairs, name=None, value=None, normalize=True, **searchArgs): """ Wrapper around pairs.searchPairs() which sets nameMatch to EQ_ or NZ_MATCH depending on the value of normalize. """ nameMatch = NZ_MATCH if normalize else EQ_MATCH return searchPairs(pairs, name, value, nameMatch=nameMatch, **searchArgs)
def testSearchingValuesLiterally(self): self.assertEqual( tuple(searchPairs(self.pairs, value="test", valueMatch=EQ_MATCH)), (self.pairs.index(self.z2), ) )
def testSearchingValues(self): self.assertEqual( tuple(searchPairs(self.pairs, value="is")), (self.pairs.index(self.z1), ) )
def testSearchingNamesCaseSensitively(self): self.assertEqual( tuple(searchPairs(self.pairs, name="g", nameMatch=EQ_MATCH)), (self.pairs.index(self.g2), ) )
def testSearchingBackwards(self): self.assertEqual( tuple(searchPairs(self.pairs, name="A", n=1, reverse=True))[0], self.pairs.index(self.a2) )
def testSearchingNamesAndValues(self): self.assertEqual( tuple(searchPairs(self.pairs, name="A", value="b")), (self.pairs.index(self.a2), ) )