def test_xugrep(self): # a result_forest is a list of text pieces report = {} report['result_forest'] = [ self.tei_data1 ] report['tree_ids'] = ["AIST"] report['tree_types'] = [ "file" ] report['re_matches'] = [] xugrep = XUGrep() report = xugrep.xugrep( self.tei_xupath1, report ) self.assertEqual( len( report['result_forest'] ), 2 ) self.assertEqual( report['tree_ids'][0], "AIST.1" ) self.assertEqual( report['tree_ids'][1], "AIST.9" ) self.assertEqual( len( report['tree_ids'] ), 2 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "tei:section" ) self.assertEqual( len( report['tree_types'] ), 2 ) report = {} report['result_forest'] = [ self.tei_data2 ] report['tree_ids'] = [ "AIST" ] report['tree_types'] = [ "file" ] report = xugrep.xugrep( self.tei_xupath2, report ) self.assertEqual( len( report['result_forest'] ), 1 ) self.assertEqual( report['tree_ids'][0], "AIST.1.1.1" ) self.assertEqual( len( report['tree_ids'] ), 1 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "tei:section") self.assertEqual( report['tree_types'][2], "tei:subsection") self.assertEqual( report['tree_types'][3], "tei:subsubsection") self.assertEqual( len( report['tree_types'] ), 4 ) self.assertEqual( len(report['re_matches'][0]), 1 ) self.assertEqual( len(report['re_matches']), 1 ) ## NVD report = {} report['result_forest'] = [ self.nvd_data1 ] report['tree_ids'] = [ "CVE2012" ] report['tree_types'] = [ "file" ] report['re_matches'] = [] report = xugrep.xugrep( self.nvd_xupath1, report ) self.assertEqual( len( report['result_forest'] ), 2 ) self.assertEqual( report['tree_ids'][0], "CVE2012.CVE-2012-0001" ) self.assertEqual( report['tree_ids'][1], "CVE2012.CVE-2012-0002" ) self.assertEqual( len( report['tree_ids'] ), 2 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "nvd:entry" ) self.assertEqual( len( report['tree_types'] ), 2 ) self.assertEqual( len( report['re_matches'][0] ), 1 ) self.assertEqual( len( report['re_matches'][1] ), 1 ) self.assertEqual( len( report['re_matches'] ), 2 ) report = {} report['result_forest'] = [ self.nvd_data1 ] report['tree_ids'] = [ "CVE2012" ] report['tree_types'] = [ "file" ] report['re_matches'] = [] report = xugrep.xugrep( self.nvd_xupath2, report ) self.assertEqual( len( report['result_forest'] ), 2 ) self.assertEqual( report['tree_ids'][0], "CVE2012.CVE-2012-0001.1" ) self.assertEqual( report['tree_ids'][1], "CVE2012.CVE-2012-0002.1" ) self.assertEqual( len( report['tree_ids'] ), 2 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "nvd:entry" ) self.assertEqual( report['tree_types'][2], "nvd:score" ) self.assertEqual( len( report['tree_types'] ), 3 ) # undefined: self.assertEqual( len( report['re_matches'] ), ## Cisco IOS report = {} report['result_forest'] = [ self.ios_data1 ] report['tree_ids'] = [ "Router" ] report['tree_types'] = [ "file" ] report['re_matches'] = [] report = xugrep.xugrep( self.ios_xupath1, report ) self.assertEqual( len( report['result_forest'] ), 2 ) self.assertEqual( report['tree_ids'][0], "Router.Loopback0" ) self.assertEqual( report['tree_ids'][1], "Router.GigabitEthernet4/2" ) self.assertEqual( len( report['tree_ids'] ), 2 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "ios:interface" ) self.assertEqual( len( report['tree_types'] ), 2 ) self.assertEqual( len( report['re_matches'] ), 0 ) report = {} report['result_forest'] = [ self.ios_data1 ] report['tree_ids'] = [ "Router" ] report['tree_types'] = [ "file" ] report['re_matches'] = [] report = xugrep.xugrep( self.ios_xupath2, report ) self.assertEqual( len( report['result_forest'] ), 1 ) self.assertEqual( report['tree_ids'][0], "Router.GigabitEthernet4/2" ) self.assertEqual( len( report['tree_ids'] ), 1 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "ios:interface" ) self.assertEqual( len( report['tree_types'] ), 2 ) self.assertEqual( len(report['re_matches'][0]), 2 ) self.assertEqual( len(report['re_matches']), 1 ) report = {} report['result_forest'] = [ self.ios_data1 ] report['tree_ids'] = [ "Router" ] report['tree_types'] = [ "file" ] report['re_matches'] = [] report = xugrep.xugrep( self.ios_xupath3, report ) self.assertEqual( len( report['result_forest'] ), 9 ) self.assertEqual( report['tree_ids'][0], "Router.GigabitEthernet4/2.1" ) self.assertEqual( report['tree_ids'][1], "Router.GigabitEthernet4/2.2" ) self.assertEqual( len( report['tree_ids'] ), 9 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "ios:interface" ) self.assertEqual( report['tree_types'][2], "ios:line" ) self.assertEqual( len( report['tree_types'] ), 3 ) report = {} report['result_forest'] = [ self.ios_data1 ] report['tree_ids'] = [ "Router" ] report['tree_types'] = [ "file" ] report['re_matches'] = [] report = xugrep.xugrep( self.ios_xupath4, report ) self.assertEqual( len( report['result_forest'] ), 2 ) self.assertEqual( report['tree_ids'][0], "Router.GigabitEthernet4/2.4" ) self.assertEqual( report['tree_ids'][1], "Router.GigabitEthernet4/2.5" ) self.assertEqual( len( report['tree_ids'] ), 2 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "ios:interface" ) self.assertEqual( report['tree_types'][2], "ios:line" ) self.assertEqual( len( report['tree_types'] ), 3 ) self.assertEqual( len( report['re_matches'][0] ), 1 ) self.assertEqual( len( report['re_matches'][1] ), 1 ) self.assertEqual( len( report['re_matches'] ), 2 ) report = {} report['result_forest'] = [ self.ios_data1 ] report['tree_ids'] = [ "Router" ] report['tree_types'] = [ "file" ] report['re_matches'] = [] report = xugrep.xugrep( self.ios_xupath5, report ) self.assertEqual( len( report['result_forest'] ), 16 ) self.assertEqual( report['tree_ids'][0], "Router.1" ) self.assertEqual( report['tree_ids'][1], "Router.2" ) self.assertEqual( len( report['tree_ids'] ), 16 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "ios:line" ) self.assertEqual( len( report['tree_types'] ), 2 ) ## C Functions report = {} report['result_forest'] = [ self.c_data1 ] report['tree_ids'] = [ "Example" ] report['tree_types'] = [ "file" ] report['re_matches'] = [] report = xugrep.xugrep( self.c_xupath1, report ) self.assertEqual( len( report['result_forest'] ), 5 ) self.assertEqual( report['tree_ids'][0], "Example.putstr" ) self.assertEqual( report['tree_ids'][1], "Example.fac" ) self.assertEqual( report['tree_ids'][2], "Example.putn" ) self.assertEqual( len( report['tree_ids'] ), 5 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "cspec:function" ) self.assertEqual( len( report['tree_types'] ), 2 ) report = {} report['result_forest'] = [ self.c_data1 ] report['tree_ids'] = [ "Example" ] report['tree_types'] = [ "file" ] report['re_matches'] = [] report = xugrep.xugrep( self.c_xupath2, report ) self.assertEqual( len( report['result_forest'] ), 2 ) self.assertEqual( report['tree_ids'][0], "Example.putstr" ) self.assertEqual( report['tree_ids'][1], "Example.putn" ) self.assertEqual( len( report['tree_ids'] ), 2 ) self.assertEqual( report['tree_types'][0], "file" ) self.assertEqual( report['tree_types'][1], "cspec:function" ) self.assertEqual( len( report['tree_types'] ), 2 )