def test_list_pattern_node_parse_list_returns_parsed_list_elements(self):
     list_pattern_node = node.ListPatternNode(item=self.test_item)
     list_value_node = list_pattern_node.parse(['foo', 'bar', 'ham'])
     self.assertEqual(len(list_value_node), 3)
     for parsed_item in list_value_node:
         self.assertTrue(
             isinstance(parsed_item.pattern, node.StringPatternNode))
         self.assertTrue(parsed_item.value in ('foo', 'bar', 'ham'))
 def test_list_pattern_node_parse_dict_returns_parsed_dict_values(self):
     list_pattern_node = node.ListPatternNode(item=self.test_item)
     list_value_node = list_pattern_node.parse({
         '0': 'foo',
         '20': 'bar',
         'spam': 'eggs'
     })
     self.assertEqual(len(list_value_node), 3)
     for parsed_item in list_value_node:
         self.assertTrue(
             isinstance(parsed_item.pattern, node.StringPatternNode))
         self.assertTrue(parsed_item.value in ('foo', 'bar', 'eggs'))
 def ttest_list_pattern_node_parse_none_returns_none_unless_default(self):
     list_pattern_node = node.ListPatternNode(item=self.test_item,
                                              default=('foo', 'bar'))
     list_value_node = list_pattern_node.parse(None)
     for parsed_item in list_value_node:
         self.assertTrue(parsed_item.value in ('foo', 'bar'))
 def test_list_pattern_node_parse_none_returns_none_unless_required(self):
     list_pattern_node = node.ListPatternNode(item=self.test_item,
                                              required=True)
     self.assertRaises(node.ValueNodeError, list_pattern_node.parse, None)
 def test_list_pattern_node_parse_none_returns_none(self):
     list_pattern_node = node.ListPatternNode(item=self.test_item)
     self.assertIs(list_pattern_node.parse(None), None)
 def test_list_value_node_parsed_attr_remains_none(self):
     list_pattern_node = node.ListPatternNode(item=self.test_item)
     list_value_node = list_pattern_node.parse(['foo', 'bar', 'ham'])
     self.assertEqual(list_value_node.value, None)
 def test_list_pattern_node_parse_returns_list(self):
     list_pattern_node = node.ListPatternNode(item=self.test_item)
     list_value_node = list_pattern_node.parse(['foo', 'bar', 'ham'])
     self.assertTrue(isinstance(list_value_node, list))
     self.assertTrue(isinstance(list_value_node, node.ListValueNode))
 def test_list_pattern_node_passes_valid_item_positional_arg(self):
     for valid_item in self.valid_items:
         item_type = valid_item['type']
         list_pattern_node = node.ListPatternNode(valid_item)
         self.assertTrue(isinstance(list_pattern_node.item, item_type))
 def test_list_pattern_node_is_allowed_to_pass_item_as_positional_argument(
         self):
     pattern_node = node.ListPatternNode(self.test_item)
     self.assertIsInstance(pattern_node.item, node.StringPatternNode)