def test_parse_post_mapppings(self): """Test parsing of POST key/value pairs for data_model in TableIO """ # Test partly loaded table (3 values) in POST tIO = AssessTableIO(TestMappings,delimiters) records = tIO.parse_POST(mappings_POST_1_3) values = [] for record in records.values(): values.append(str(record.get_value())) print_traceback(tIO.errors) self.assertEqual(tIO.errors,[]) self.assertEqual(values,values_mappings_1_3) # Test fully loaded table (4 values) in POST tIO = AssessTableIO(TestMappings,delimiters) records = tIO.parse_POST(mappings_POST_1_4) values = [] for record in records.values(): values.append(str(record.get_value())) print_traceback(tIO.errors) self.assertEqual(tIO.errors,[]) self.assertEqual(values,values_mappings_1_4) # Test overloaded table (5 values) in POST tIO = AssessTableIO(TestMappings,delimiters) records = tIO.parse_POST(mappings_POST_1_5) values = [] for record in records.values(): values.append(str(record.get_value())) print_traceback(tIO.errors) self.assertEqual(tIO.errors,[]) self.assertEqual(values,values_mappings_1_5)
def test_parse_post_data(self): """Test parsing of POST key/value pairs for data_model in TableIO """ # Test fully loaded table (8 values) in POST tIO = AssessTableIO(TestData,delimiters) records = tIO.parse_POST(POST_1_8) values = [] for record in records.values(): values.append(record.get_value()) print_traceback(tIO.errors) self.assertEqual(tIO.errors,[]) self.assertEqual(values,values_data_1_8) # Test partly loaded table (7 values) in POST tIO = AssessTableIO(TestData,delimiters) records = tIO.parse_POST(POST_1_7) values = [] for record in records.values(): values.append(record.get_value()) print_traceback(tIO.errors) self.assertEqual(tIO.errors,[]) self.assertEqual(values,values_data_1_7) # Test overloaded table (9 values) in POST tIO = AssessTableIO(TestData,delimiters) records = tIO.parse_POST(POST_1_9) values = [] for record in records.values(): values.append(record.get_value()) print_traceback(tIO.errors) self.assertEqual(tIO.errors,[]) self.assertEqual(values,values_data_1_9)
def test_parse_post_data_invalid(self): # Test that an invalid key length in POST results in an error and that # the POST entry is not added to the records tIO = AssessTableIO(TestData,delimiters) records = tIO.parse_POST(POST_invalid_length) key = list(POST_invalid_length.keys()).pop() self.assertEqual(str(tIO.errors.pop()),str(KeyInvalid(key, TestData))) self.assertEqual(records,{}) # Test that an invalid key length in POST results in an error and that # the POST entry is not added to the records records = tIO.parse_POST(POST_invalid_label) key = 'bad_item in ' + list(POST_invalid_label.keys()).pop() self.assertEqual(str(tIO.errors.pop()),str(KeyNotFound(key, TestData))) self.assertEqual(records,{}) # Test that an invalid value field name in POST results in an error # and that the POST entry is not added to the records records = tIO.parse_POST(POST_invalid_value_field) error_msg = str(NoFieldError('bad_field', TestData)) self.assertNotEqual(len(tIO.errors),0) if len(tIO.errors) > 0: self.assertEqual(str(tIO.errors.pop()),error_msg) self.assertEqual(records,{})