def testSettingsWithDuplicateIndexes(self): self.assertEqual( tuple(replacePairs(self.pairs, (0, 1), name="Hai")), tuple(replacePairs(self.pairs, (0, 1, 0), name="Hai")) ) self.assertEqual( tuple(replacePairs(self.pairs, (0, 1))), tuple(replacePairs(self.pairs, (0, 1, 0))) )
def testSetsRejectsNamesAndValuesWhichAreNotStrings(self): self.assertRaises( TypeError, lambda h, i, n: tuple(replacePairs(h, i, name=n)), (self.a1, ), (0, ), 5 ) self.assertRaises( TypeError, lambda h, i, v: tuple(replacePairs(h, i, value=v)), (self.a1, ), (0, ), 3.141592 )
def testSettingsWithOutOfBoundIndexesRaisesIndexError(self): self.assertRaises( IndexError, lambda h, i, n: tuple(replacePairs(h, i, name=n)), (self.a1, ), (-1, ), "test" ) self.assertRaises( IndexError, lambda h, i, n: tuple(replacePairs(h, i, name=n)), (self.a1, ), (2, ), "test" )
def testSettingsToNoneDeletesThem(self): self.assertEqual( tuple(replacePairs(self.pairs, (0, ))), self.pairs[1:] ) self.assertEqual( tuple(replacePairs(self.pairs, (3, ))), self.pairs[:3] + self.pairs[3+1:] ) self.assertEqual( tuple(replacePairs(self.pairs, (0, 1, 2))), self.pairs[3:] )
def testSettingsWithIndexesThatAreNotIntegersRaisesIndexError(self): # It's IndexError and not TypeError because we iterate through & # process all valid indexes, and complain if any indexes weren't # processed w/o investigating why. self.assertRaises( IndexError, lambda h, i, n: tuple(replacePairs(h, i, name=n)), (self.a1, ), (1+2j, ), "test" )
def testSettings(self): self.assertEqual( tuple(replacePairs(self.pairs, (0, ), name="Test", value="Testing")), (("Test", "Testing"), ) + self.pairs[1:] ) self.assertEqual( tuple(replacePairs(self.pairs, (0, 1, 2), name="<", value=">")), ((("<", ">"), )*3) + self.pairs[3:] ) ci = self.pairs.index(self.c) self.assertEqual( tuple(replacePairs(self.pairs, (ci, ), name="A")), self.pairs[:ci] + (("A", self.c[VALUE_IDX]), ) + self.pairs[ci+1:] ) self.assertEqual( tuple(replacePairs(self.pairs, (ci, ), value="ZzZzZ")), self.pairs[:ci] + ((self.c[NAME_IDX], "ZzZzZ"), ) + self.pairs[ci+1:] )