def test_mult_matching_subloops_ok(self): """ Test for match of 820 Individual Remittance Loop """ cmap = pyx12.map_if.load_map_file('820.5010.X218.xml', self.param) node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER') self.assertNotEqual(node, None) self.assertEqual(node.base_name, 'loop') node.cur_count = 1 node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER/1000A') self.assertNotEqual(node, None) self.assertEqual(node.base_name, 'loop') node.cur_count = 1 node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER/1000B') self.assertNotEqual(node, None) self.assertEqual(node.base_name, 'loop') node.cur_count = 1 node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER/1000B/N1') self.assertNotEqual(node, None) start_node = node self.assertEqual(node.base_name, 'segment') node.cur_count = 1 seg_data = pyx12.segment.Segment( 'ENT*1*2J*EI*99998707~', '~', '*', ':') self.errh.reset() #print node.get_path() (node, pop, push) = self.walker.walk( node, seg_data, self.errh, 5, 4, None) self.assertEqual(self.errh.err_cde, None, self.errh.err_str) #print node.get_path() self.assertEqual(get_id_list(pop), ['1000B', 'HEADER']) self.assertEqual(get_id_list(push), ['TABLE2AREA3', '2000B']) self.assertEqual(traverse_path(start_node, pop, push), pop_to_parent_loop(node).get_path())
def xtest_repeat_loop_with_one_segment(self): cmap = pyx12.map_if.load_map_file('841.4010.XXXC.xml', self.param) node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/DETAIL/2000/2100/SPI') self.assertNotEqual(node, None, 'Node not found') start_node = node #node.cur_count = 1 self.walker.setCountState({node.x12path: 1}) self.errh.reset() seg_data = pyx12.segment.Segment('SPI*00', '~', '*', ':') (node, pop, push) = self.walker.walk(node, seg_data, self.errh, 5, 4, None) self.assertNotEqual(node, None, 'walker failed') self.assertEqual(seg_data.get_seg_id(), node.id) self.assertEqual(self.errh.err_cde, None, self.errh.err_str) self.assertEqual(get_id_list(pop), ['2100']) self.assertEqual(get_id_list(push), ['2100']) self.assertEqual(traverse_path(start_node, pop, push), pop_to_parent_loop(node).get_path())
def test_repeat_loop_with_one_segment_EQ(self): #errh = pyx12.error_handler.errh_null() cmap = pyx12.map_if.load_map_file('270.4010.X092.A1.xml', self.param) node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/DETAIL/2000A/2000B/2000C/2100C/2110C/EQ') start_node = node self.assertNotEqual(node, None, 'Node not found') node.cur_count = 1 seg_data = pyx12.segment.Segment('EQ*30**CHD', '~', '*', ':') self.errh.reset() (node, pop, push) = self.walker.walk( node, seg_data, self.errh, 5, 4, None) self.assertNotEqual(node, None, 'walker failed') self.assertEqual(seg_data.get_seg_id(), node.id) self.assertEqual(self.errh.err_cde, None, self.errh.err_str) self.assertEqual(get_id_list(pop), ['2110C']) self.assertEqual(get_id_list(push), ['2110C']) self.assertEqual(traverse_path(start_node, pop, push), pop_to_parent_loop(node).get_path())
def test_mult_matching_subloops_ok(self): """ Test for match of 820 Individual Remittance Loop """ cmap = pyx12.map_if.load_map_file('820.5010.X218.xml', self.param) node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER') self.assertNotEqual(node, None) self.assertEqual(node.base_name, 'loop') #node.cur_count = 1 node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER/1000A') self.assertNotEqual(node, None) self.assertEqual(node.base_name, 'loop') #node.cur_count = 1 node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER/1000B') self.assertNotEqual(node, None) self.assertEqual(node.base_name, 'loop') #node.cur_count = 1 node = cmap.getnodebypath('/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER/1000B/N1') self.assertNotEqual(node, None) start_node = node self.assertEqual(node.base_name, 'segment') #node.cur_count = 1 seg_data = pyx12.segment.Segment('ENT*1*2J*EI*99998707~', '~', '*', ':') self.errh.reset() #print node.get_path() self.walker.setCountState({ '/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER': 1, '/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER/1000A': 1, '/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER/1000B': 1, '/ISA_LOOP/GS_LOOP/ST_LOOP/HEADER/1000B/N1': 1, }) (node, pop, push) = self.walker.walk(node, seg_data, self.errh, 5, 4, None) self.assertEqual(self.errh.err_cde, None, self.errh.err_str) #print node.get_path() self.assertEqual(get_id_list(pop), ['1000B', 'HEADER']) self.assertEqual(get_id_list(push), ['TABLE2AREA3', '2000B']) self.assertEqual(traverse_path(start_node, pop, push), pop_to_parent_loop(node).get_path())
def xtest_repeat_loop_with_one_segment(self): cmap = pyx12.map_if.load_map_file('841.4010.XXXC.xml', self.param) node = cmap.getnodebypath( '/ISA_LOOP/GS_LOOP/ST_LOOP/DETAIL/2000/2100/SPI') self.assertNotEqual(node, None, 'Node not found') start_node = node #node.cur_count = 1 self.walker.setCountState({node.x12path: 1}) self.errh.reset() seg_data = pyx12.segment.Segment('SPI*00', '~', '*', ':') (node, pop, push) = self.walker.walk(node, seg_data, self.errh, 5, 4, None) self.assertNotEqual(node, None, 'walker failed') self.assertEqual(seg_data.get_seg_id(), node.id) self.assertEqual(self.errh.err_cde, None, self.errh.err_str) self.assertEqual(get_id_list(pop), ['2100']) self.assertEqual(get_id_list(push), ['2100']) self.assertEqual(traverse_path(start_node, pop, push), pop_to_parent_loop(node).get_path())
def test_repeat_loop_with_one_segment_EQ(self): #errh = pyx12.error_handler.errh_null() cmap = pyx12.map_if.load_map_file('270.4010.X092.A1.xml', self.param) node = cmap.getnodebypath( '/ISA_LOOP/GS_LOOP/ST_LOOP/DETAIL/2000A/2000B/2000C/2100C/2110C/EQ' ) start_node = node self.assertNotEqual(node, None, 'Node not found') #node.cur_count = 1 self.walker.setCountState({node.x12path: 1}) seg_data = pyx12.segment.Segment('EQ*30**CHD', '~', '*', ':') self.errh.reset() (node, pop, push) = self.walker.walk(node, seg_data, self.errh, 5, 4, None) self.assertNotEqual(node, None, 'walker failed') self.assertEqual(seg_data.get_seg_id(), node.id) self.assertEqual(self.errh.err_cde, None, self.errh.err_str) self.assertEqual(get_id_list(pop), ['2110C']) self.assertEqual(get_id_list(push), ['2110C']) self.assertEqual(traverse_path(start_node, pop, push), pop_to_parent_loop(node).get_path())