예제 #1
0
 def finds_a_module_from_an_fromstar(self):
     src = dedent("""
     from foo import *
     """)
     srcfile = self.t.create_module("mymodule", src)
     foofile = self.t.create_module("foo", "pass")
     defn = findDefinitionByCoords(srcfile, 2, 5, [])
     assert_equal(foofile, defn.filename)
     assert_equal(0, defn.lineno)
     assert_equal(0, defn.colno)
     assert_equal(100, defn.confidence)
예제 #2
0
def globalScanForNameReferences(name, filename, defnmatch, pythonpath):
    for sourcenode, linenum, col in _generateCoordsMatchingString(name,filename,pythonpath):
        try:
            potentualMatch = findDefinitionByCoords(sourcenode.filename,
                                                    linenum, col, pythonpath)    
            if  potentualMatch is not None and \
                potentualMatch == defnmatch:
                scope = getScopeForLine(sourcenode,linenum)
                yield createMatchObject(scope,linenum,col,name,100)
        except CouldNotLocateNodeException:
            continue
예제 #3
0
 def finds_a_module_from_an_fromstar(self):
     src = dedent("""
     from foo import *
     """)        
     srcfile= self.t.create_module("mymodule",src)
     foofile= self.t.create_module("foo","pass")
     defn = findDefinitionByCoords(srcfile,2,5,[])
     assert_equal(foofile,defn.filename)
     assert_equal(0,defn.lineno)
     assert_equal(0,defn.colno)
     assert_equal(100,defn.confidence)
예제 #4
0
 def finds_a_module_from_a_getattr(self):
     src = dedent("""
     import bah.foo
     bah.foo
     """)
     srcfile = self.t.create_module("mymodule", src)
     foofile = self.t.create_module("bah.foo", "pass")
     defn = findDefinitionByCoords(srcfile, 3, 4, [])
     assert_equal(foofile, defn.filename)
     assert_equal(0, defn.lineno)
     assert_equal(0, defn.colno)
     assert_equal(100, defn.confidence)
예제 #5
0
 def finds_a_module_from_a_getattr(self):
     src = dedent("""
     import bah.foo
     bah.foo
     """)        
     srcfile= self.t.create_module("mymodule",src)
     foofile= self.t.create_module("bah.foo","pass")
     defn = findDefinitionByCoords(srcfile,3,4,[])
     assert_equal(foofile,defn.filename)
     assert_equal(0,defn.lineno)
     assert_equal(0,defn.colno)
     assert_equal(100,defn.confidence)
예제 #6
0
def generateRefsToName(name,scope,sourcenode,defnmatch,pythonpath):
    assert scope is not None
    if isinstance(scope,Function): # can do a local search
        for linenum,col in scope.getWordCoordsMatchingString(name):
            potentualMatch = findDefinitionByCoords(sourcenode.filename,
                                                    linenum, col, pythonpath)
            if  potentualMatch is not None and \
                   potentualMatch == defnmatch:
                yield createMatchObject(scope,linenum,col,name,100)
            
    else:
        for match in  globalScanForNameReferences(name, sourcenode.filename, defnmatch, pythonpath):
            yield match
예제 #7
0
 def test_findsClassRef(self):
     todo()
     src = dedent("""
     class TheClass:
         pass
     a = TheClass()
     """)
     createSourceNodeAt(src, "mymodule")
     defn = findDefinitionByCoords(os.path.abspath("mymodule.py"), 3, 6, [])
     assert defn.filename == os.path.abspath("mymodule.py")
     assert defn.lineno == 1
     assert defn.colno == 6
     assert defn.confidence == 100
예제 #8
0
 def test_findsClassRef(self):
     todo()
     src=dedent("""
     class TheClass:
         pass
     a = TheClass()
     """)
     createSourceNodeAt(src,"mymodule")
     defn = findDefinitionByCoords(os.path.abspath("mymodule.py"),3,6,[])
     assert defn.filename == os.path.abspath("mymodule.py")
     assert defn.lineno == 1
     assert defn.colno == 6
     assert defn.confidence == 100