def test_init(self): """Partners should init with empty list and stay free of conflicts""" self.assertEqual(Partners([]), []) empty = Partners([None] * 6) self.assertEqual(empty, [None, None, None, None, None, None]) self.assertRaises(ValueError, empty.__setitem__, 2, 2) empty[2] = 3 self.assertEqual(empty, [None, None, 3, 2, None, None]) empty[3] = 1 self.assertEqual(empty, [None, 3, None, 1, None, None]) empty[3] = 5 self.assertEqual(empty, [None, None, None, 5, None, 3]) empty[1] = None self.assertEqual(empty, [None, None, None, 5, None, 3])
def test_not_implemented(self): """Partners not_implemented should raise error for 'naughty' methods""" p = Partners([None, 3, 1, 5, 4]) self.assertRaises(NotImplementedError, p.pop) self.assertRaises(NotImplementedError, p.sort) self.assertRaises(NotImplementedError, p.__delitem__, 3)
def test_toPairs(self): """Partners toPairs() should return a Pairs object""" p = Partners([None, 3, None, 1, 5, 4]) self.assertEqualItems(p.toPairs(), [(1, 3), (4, 5)]) assert isinstance(p.toPairs(), Pairs) self.assertEqual(Partners([None] * 10).toPairs(), [])
def test_toPairs(self): """Partners toPairs() should return a Pairs object""" p = Partners([None,3,None,1,5,4]) self.assertEqualItems(p.toPairs(),[(1,3),(4,5)]) assert isinstance(p.toPairs(),Pairs) self.assertEqual(Partners([None]*10).toPairs(),[])