def test_mapping_reverse_same_value_to_multiple_keys(self): table = { '0': 'foo', '1': 'foo', '2': 'bar', '3': 'ham', '42': 'bar', '44': 'bar', '45': 'spam', } test_node = node.MappingPatternNode(table=table) self.assertItemsEqual(test_node.reverse('foo'), ['0', '1']) self.assertItemsEqual(test_node.reverse('bar'), ['2', '42', '44']) self.assertItemsEqual(test_node.reverse('ham'), '3') self.assertItemsEqual(test_node.reverse('spam'), '45')
def test_mapping_node_required_ignores_default_value_on_empty_input(self): mapping_pattern_node = node.MappingPatternNode(table=self.test_table, required=True, default='foo') self.assertRaises(node.ValueNodeError, mapping_pattern_node.parse, None)
def test_mapping_reverse_values(self): for test_key, test_value in six.iteritems(self.test_table): mapping_pattern_node = node.MappingPatternNode( table=self.test_table) self.assertEqual(mapping_pattern_node.reverse(test_value), test_key)
def test_mapping_node_parse_none_returns_none_unless_required(self): mapping_pattern_node = node.MappingPatternNode(table=self.test_table, required=True) self.assertRaises(node.ValueNodeError, mapping_pattern_node.parse, None)
def test_mapping_node_parse_none_returns_none_unless_default(self): mapping_pattern_node = node.MappingPatternNode(table=self.test_table, default='foo') self.assertEqual(mapping_pattern_node.parse(None).value, 'bar')
def test_mapping_node_required_passes_non_empty_value(self): mapping_pattern_node = node.MappingPatternNode(table=self.test_table, required=True) for test_key, test_value in six.iteritems(self.test_table): self.assertEqual( mapping_pattern_node.parse(test_key).value, test_value)
def test_mapping_node_parse_none_returns_none(self): mapping_pattern_node = node.MappingPatternNode(table=self.test_table) self.assertIs(mapping_pattern_node.parse(None), None)
def test_mapping_node_maps_fails_to_map_nonexistent_key(self): mapping_pattern_node = node.MappingPatternNode(table=self.test_table) self.assertRaises(node.ValueNodeError, mapping_pattern_node.parse, 'nonexistent')
def test_mapping_node_default_key_value(self): for test_key, test_value in six.iteritems(self.test_table): mapping_pattern_node = node.MappingPatternNode( table=self.test_table, default=test_key) self.assertEqual( mapping_pattern_node.parse(None).value, test_value)
def test_mapping_node_maps_key_to_value_on_valid_key(self): for test_key, test_value in six.iteritems(self.test_table): mapping_pattern_node = node.MappingPatternNode( table=self.test_table) self.assertEqual( mapping_pattern_node.parse(test_key).value, test_value)
def test_mapping_node_fails_on_invalid_mapping_table_with_table_as_positional_arg( self): for invalid in self.invalid_tables: with self.assertRaises(node.PatternNodeError): mapping_pattern_node = node.MappingPatternNode(invalid)
def test_mapping_node_fails_on_invalid_mapping_table(self): for invalid in self.invalid_tables: with self.assertRaises(node.PatternNodeError): mapping_pattern_node = node.MappingPatternNode(table=invalid)
def test_mapping_node_accepts_table_as_positional_argument(self): for valid in self.valid_tables: mapping_pattern_node = node.MappingPatternNode(valid)
def test_mapping_node_accepts_table_as_keyword_argument(self): for valid in self.valid_tables: mapping_pattern_node = node.MappingPatternNode(table=valid)