示例#1
0
 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())
示例#2
0
 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())
示例#3
0
 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())
示例#4
0
 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())
示例#5
0
 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())
示例#6
0
 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())