예제 #1
0
파일: test.py 프로젝트: astql/astql
 def testStack(self):
     pattern=Stack(PyFile(var='pyfile'),
                   PyClass(var='c'),
                   PyFunction(var='m'),
                   And(PyString(var='str1',content='inv.agreement'),
                       PyString(var='str2',content='invoice_date')))
     query=Query(start='tests/examples/example1',
                 pattern=pattern)
     self.assertEqual(query.start,'tests/examples/example1')
     self.assertEqual(query.pattern,pattern)
     results=[x for x in query.get_results()]
     r=results[0]
     self.assertEqual(r['pyfile']['name'],'example1.py')
     self.assertEqual(r['pyfile']['relative_dir'],'tests/examples/example1')
     self.assertEqual(r['pyfile']['num_lines'],5)
     self.assertEqual(r['c']['name'],'Class1')
     self.assertEqual(r['c']['line_start'],1)
     self.assertEqual(r['c']['line_end'],4)
     self.assertEqual(r['c']['num_lines'],4)
     self.assertEqual(r['m']['name'],'m1')
     self.assertEqual(r['m']['line_start'],2)
     self.assertEqual(r['m']['line_end'],4)
     self.assertEqual(r['m']['num_lines'],3)
     self.assertEqual(r['str1']['content'],'inv.agreement') 
     self.assertEqual(r['str2']['content'],'invoice_date')    
예제 #2
0
파일: test.py 프로젝트: astql/astql
 def testPyFile(self):
     pattern=PyFile(var='pyfile')
     query=Query(start='tests/examples/example1',
                 pattern=pattern)
     self.assertEqual(query.start,'tests/examples/example1')
     self.assertEqual(query.pattern,pattern)
     results=[x for x in query.get_results()]
     r=results[0]
     self.assertEqual(r['pyfile']['name'],'example1.py')
     self.assertEqual(r['pyfile']['relative_dir'],'tests/examples/example1')
     self.assertEqual(r['pyfile']['num_lines'],5)
예제 #3
0
파일: test.py 프로젝트: astql/astql
 def testPyFunction(self):
     pattern=PyFunction(var='f')
     query=Query(start='tests/examples/example1',
                 pattern=pattern)
     self.assertEqual(query.start,'tests/examples/example1')
     self.assertEqual(query.pattern,pattern)
     results=[x for x in query.get_results()]
     r=results[0]
     self.assertEqual(r['f']['name'],'m1')
     self.assertEqual(r['f']['line_start'],2)
     self.assertEqual(r['f']['line_end'],4)
     self.assertEqual(r['f']['num_lines'],3)
예제 #4
0
파일: test.py 프로젝트: astql/astql
 def testPyClass(self):
     pattern=PyClass(var='c1')
     query=Query(start='tests/examples/example1',
                 pattern=pattern)
     self.assertEqual(query.start,'tests/examples/example1')
     self.assertEqual(query.pattern,pattern)
     results=[x for x in query.get_results()]
     r=results[0]
     self.assertEqual(r['c1']['name'],'Class1')
     self.assertEqual(r['c1']['line_start'],1)
     self.assertEqual(r['c1']['line_end'],4)
     self.assertEqual(r['c1']['num_lines'],4)
예제 #5
0
파일: test.py 프로젝트: astql/astql
 def testAnd(self):
     pattern=And(PyString(var='str1',content='inv.agreement'),
                       PyString(var='str2',content='invoice_date'))
     query=Query(start='tests/examples/example1',
                 pattern=pattern)
     self.assertEqual(query.start,'tests/examples/example1')
     self.assertEqual(query.pattern,pattern)
     results=[x for x in query.get_results()]
     r=results[0]
     self.assertEqual(r['str1']['content'],'inv.agreement')
     self.assertEqual(r['str1']['line_start'],3)
     self.assertEqual(r['str1']['line_end'],3)
     self.assertEqual(r['str1']['num_lines'],1)
     self.assertEqual(r['str2']['content'],'invoice_date')
     self.assertEqual(r['str2']['line_start'],4)
     self.assertEqual(r['str2']['line_end'],4)
     self.assertEqual(r['str2']['num_lines'],1) 
예제 #6
0
파일: test.py 프로젝트: astql/astql
 def testComplex1(self):
     pattern=Stack(PyFile(var='pyfile'),
                   PyClass(var='c'),
                   PyFunction(var='m'),
                   And(PyString(var='str1',content='x11'),PyString(var='str2',content='y11')))
     query=Query(start='tests/examples/example2',
                 pattern=pattern)
     self.assertEqual(query.start,'tests/examples/example2')
     self.assertEqual(query.pattern,pattern)
     results=[x for x in query.get_results()]
     r=results[0]
     self.assertEqual(r['pyfile']['name'],'example2.py')
     self.assertEqual(r['pyfile']['relative_dir'],'tests/examples/example2')
     self.assertEqual(r['pyfile']['num_lines'],14)
     self.assertEqual(r['c']['name'],'Class1')
     self.assertEqual(r['c']['line_start'],1)
     self.assertEqual(r['c']['line_end'],7)
     self.assertEqual(r['c']['num_lines'],7)
     self.assertEqual(r['m']['name'],'m1')
     self.assertEqual(r['m']['line_start'],2)
     self.assertEqual(r['m']['line_end'],4)
     self.assertEqual(r['m']['num_lines'],3)
     self.assertEqual(r['str1']['content'],'x11') 
     self.assertEqual(r['str2']['content'],'y11') 
     r=results[1]
     self.assertEqual(r['pyfile']['name'],'example2_2.py')
     self.assertEqual(r['pyfile']['relative_dir'],'tests/examples/example2')
     self.assertEqual(r['pyfile']['num_lines'],16)
     self.assertEqual(r['c']['name'],'Class1_2')
     self.assertEqual(r['c']['line_start'],1)
     self.assertEqual(r['c']['line_end'],7)
     self.assertEqual(r['c']['num_lines'],7)
     self.assertEqual(r['m']['name'],'m1_2')
     self.assertEqual(r['m']['line_start'],2)
     self.assertEqual(r['m']['line_end'],4)
     self.assertEqual(r['m']['num_lines'],3)
     self.assertEqual(r['str1']['content'],'x11') 
     self.assertEqual(r['str2']['content'],'y11') 
     self.assertEqual(len(results),2)