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)