Ejemplo n.º 1
0
    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')
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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')
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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')
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
 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)
Ejemplo n.º 12
0
 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)
Ejemplo n.º 13
0
 def test_mapping_node_accepts_table_as_positional_argument(self):
     for valid in self.valid_tables:
         mapping_pattern_node = node.MappingPatternNode(valid)
Ejemplo n.º 14
0
 def test_mapping_node_accepts_table_as_keyword_argument(self):
     for valid in self.valid_tables:
         mapping_pattern_node = node.MappingPatternNode(table=valid)