def testRecordErrors(self): my_record = utils.make_record('my_record', ['a', 'b', 'c'], {'b': 10}) with self.assertRaises(ValueError): my_record(c=5) # Did not provide required argument 'a'. with self.assertRaises(ValueError): my_record(1, 2, 3, 4) # Too many arguments.
def testRecord(self): my_record = utils.make_record('my_record', ['a', 'b', 'c'], {'b': 55}) inst = my_record(a=1, b=2, c=3) self.assertEqual(1, inst.a) self.assertEqual(2, inst.b) self.assertEqual(3, inst.c) self.assertEqual(1, inst[0]) self.assertEqual(2, inst[1]) self.assertEqual(3, inst[2]) self.assertEqual([1, 2, 3], list(iter(inst))) self.assertEqual(3, len(inst)) inst.b = 999 self.assertEqual(999, inst.b) self.assertEqual(999, inst[1]) inst2 = my_record(1, 999, 3) self.assertTrue(inst == inst2) inst2[1] = 3 self.assertFalse(inst == inst2) inst3 = my_record(a=1, c=3) inst.b = 55 self.assertEqual(inst, inst3)
def testTupleToRecord(self): my_record = utils.make_record('my_record', ['a', 'b', 'c']) inst = utils.tuple_to_record((5, 6, 7), my_record) self.assertEqual(my_record(5, 6, 7), inst)
def testRecordUnique(self): record1 = utils.make_record('record1', ['a', 'b', 'c']) record2 = utils.make_record('record2', ['a', 'b', 'c']) self.assertNotEqual(record1(1, 2, 3), record2(1, 2, 3)) self.assertEqual(record1(1, 2, 3), record1(1, 2, 3))