Esempio n. 1
0
 def testDetectModuleCompletionInitial(self):
     source = dedent("""\
         from Nested.Package.Mo
         
     """)
     line = "from Nested.Package.Mo"
     options = detectCompletionType(os.path.join('TestData', 'PackageA', 'Module.py'), source,
                                     1, len(line), '', NESTEDDICT, update=False)
     expected = CompletionOptions(Types.MODULE, module='Nested.Package', showMembers=False)
     self.assertEquals(options, expected)
     
     source = dedent("""\
         from Module.
         
     """)
     line = "from Module."
     options = detectCompletionType('Module.py', source, 1, len(line), '', self.pysmelldict)
     expected = CompletionOptions(Types.MODULE, module='Module', showMembers=False)
     self.assertEquals(options, expected)
     
     source = dedent("""\
         from Mo
         
     """)
     line = "from Mo"
     options = detectCompletionType('Module.py', source, 1, len(line), '', self.pysmelldict)
     expected = CompletionOptions(Types.MODULE, module='Mo', showMembers=False)
     self.assertEquals(options, expected)
Esempio n. 2
0
    def testDetectModuleCompletionTwo(self):
        source = dedent("""\
            from Nested.Package import 
            
        """)
        line = "from Nested.Package import "
        options = detectCompletionType(os.path.join('TestData', 'PackageA', 'Module.py'), source,
                                            1, len(line), '', NESTEDDICT, update=False)
        expected = CompletionOptions(Types.MODULE, module="Nested.Package", showMembers=True)
        self.assertEquals(options, expected)

        source = dedent("""\
            from Nested import 
            
        """)
        line = "from Nested import "
        options = detectCompletionType(os.path.join('TestData', 'PackageA', 'Module.py'), source,
                                            1, len(line), '', NESTEDDICT, update=False)
        expected = CompletionOptions(Types.MODULE, module="Nested", showMembers=True)
        self.assertEquals(options, expected)

        source = dedent("""\
            from Nested import Pack
            
        """)
        line = "from Nested import Pack"
        options = detectCompletionType(os.path.join('TestData', 'PackageA', 'Module.py'), source,
                                            1, len(line), '', NESTEDDICT, update=False)
        expected = CompletionOptions(Types.MODULE, module="Nested", showMembers=True)
        self.assertEquals(options, expected)
Esempio n. 3
0
    def testKnowAboutClassHierarchies(self):
        options = CompletionOptions(
            Types.INSTANCE, klass='Module.bClass',
            parents=[])  #possible error - why no parents
        compls = findCompletions('', self.pysmelldict, options)
        expected = [
            compMeth('am', 'aClass'),
            compProp('aprop', 'aClass'),
            compMeth('bm', 'aClass'),
            compProp('bprop', 'aClass'),
            compMeth('cm', 'bClass'),
            compProp('cprop', 'bClass'),
            compMeth('dm', 'bClass'),
            compProp('dprop', 'bClass')
        ]
        self.assertEquals(compls, expected)

        options = CompletionOptions(Types.INSTANCE,
                                    klass='Module.cClass',
                                    parents=['Module.bClass'])
        compls = findCompletions('', self.pysmelldict, options)
        expected = [
            compMeth('am', 'aClass'),
            compProp('aprop', 'aClass'),
            compMeth('bm', 'aClass'),
            compProp('bprop', 'aClass'),
            compMeth('cm', 'bClass'),
            compProp('cprop', 'bClass'),
            compMeth('dm', 'bClass'),
            compProp('dprop', 'bClass')
        ]
        self.assertEquals(compls, expected)
Esempio n. 4
0
 def testCompletions(self):
     options = CompletionOptions(Types.TOPLEVEL)
     compls = findCompletions('b', self.pysmelldict, options)
     expected = [
         compFunc('b', 'arg1, arg2'),
         compClass('bClass'),
         compConst('bconst')
     ]
     self.assertEquals(compls, expected)
Esempio n. 5
0
 def testDetectCompleteArgumentListFunction(self):
     source = dedent("""\
         def a():
           b(
     """)
     line = '  b('
     options = detectCompletionType('path', source, 2, len(line), 'b(', self.pysmelldict)
     expected = CompletionOptions(Types.FUNCTION, name='b', rindex=None)
     self.assertEquals(options, expected)
Esempio n. 6
0
 def testCompleteArgumentListsProp(self):
     options = CompletionOptions(Types.METHOD,
                                 klass=None,
                                 parents=[],
                                 name='bm',
                                 rindex=None)
     compls = findCompletions('bm(', self.pysmelldict, options)
     orig = compMeth('bm', 'aClass')
     orig['word'] = orig['abbr']
     self.assertEquals(compls, [orig])
Esempio n. 7
0
 def testCompleteArgumentLists(self):
     options = CompletionOptions(Types.FUNCTION,
                                 klass=None,
                                 parents=[],
                                 name='b',
                                 rindex=None)
     compls = findCompletions('b(', self.pysmelldict, options)
     orig = compFunc('b', 'arg1, arg2')
     orig['word'] = orig['abbr']
     self.assertEquals(compls, [orig])
Esempio n. 8
0
 def testDetectCompleteArgumentListMethod(self):
     line = 'salf.bm('
     options = detectCompletionType('path', line, 1, len(line), 'bm(',
                                    self.pysmelldict)
     expected = CompletionOptions(Types.METHOD,
                                  klass=None,
                                  parents=[],
                                  name='bm',
                                  rindex=None)
     self.assertEquals(options, expected)
Esempio n. 9
0
 def testDetectSimpleClass(self):
     source = dedent("""\
         class aClass(object):
             def sth(self):
                 self.
     
     """)
     line = "%sself." % (' ' * 8)
     options = detectCompletionType('Module.py', source, 3, len(line), '', self.pysmelldict)
     expected = CompletionOptions(Types.INSTANCE, klass='Module.aClass', parents=['object'])
     self.assertEquals(options, expected)
Esempio n. 10
0
    def testDetectModuleAttrLookup3(self):
        source = dedent("""\
            from Nested import Package

            funct(Package.Module., arg)
        """)
        line = "funct(Package.Module."
        options = detectCompletionType(os.path.join('TestData', 'PackageA', 'Module.py'), source,
                                            3, len(line), '', NESTEDDICT, update=False)
        expected = CompletionOptions(Types.MODULE, module="Nested.Package.Module", showMembers=True)
        self.assertEquals(options, expected)
Esempio n. 11
0
 def testDetectCompleteArgumentListFunctionClosingParen(self):
     source = dedent("""\
         def a():
           b()
     """)
     line = '  b()'
     options = detectCompletionType('path', source, 2,
                                    len(line) - 1, 'b(', self.pysmelldict)
     expected = CompletionOptions(Types.FUNCTION, name='b',
                                  rindex=-1)  # module?
     self.assertEqual(options, expected)
Esempio n. 12
0
 def testCompletionsWithPackages(self):
     options = CompletionOptions(Types.INSTANCE,
                                 klass='Nested.Package.Module.Class',
                                 parents=[])
     compls = findCompletions('', self.nestedDict, options)
     expected = [
         dict(word='cprop',
              kind='m',
              menu='Nested.Package.Module:Class',
              dup='1')
     ]
     self.assertEquals(compls, expected)
Esempio n. 13
0
 def testDetectDeepClass(self):
     source = dedent("""\
         class Class(object):
             def sth(self):
                 self.
     
     """)
     line = "%sself." % (' ' * 8)
     options = detectCompletionType(os.path.join('Nested', 'Package', 'Module.py'), source,
                         3, len(line), '', NESTEDDICT, update=False)
     expected = CompletionOptions(Types.INSTANCE, klass='Nested.Package.Module.Class', parents=['object'])
     self.assertEquals(options, expected)
Esempio n. 14
0
 def testCompleteWithSelfInfer(self):
     options = CompletionOptions(Types.INSTANCE,
                                 klass='Module.aClass',
                                 parents=[])
     compls = findCompletions('', self.pysmelldict, options)
     expected = [
         compMeth('am', 'aClass'),
         compProp('aprop', 'aClass'),
         compMeth('bm', 'aClass'),
         compProp('bprop', 'aClass')
     ]
     self.assertEquals(compls, expected)
Esempio n. 15
0
    def testDetectClassCreation(self):
        source = dedent("""\
            from Module import aClass

            thing = aClass()
            thing.
        """)
        line = "thing."
        options = detectCompletionType('apath', source,
                                            4, len(line), '', self.pysmelldict)
        expected = CompletionOptions(Types.INSTANCE, klass='Module.aClass', parents=['object', 'ForeignModule.alien'])
        self.assertEquals(options, expected)
Esempio n. 16
0
    def testDetectClassCreationLocal(self):
        source = dedent("""\
            class aClass(object):
                pass

            thing = aClass()
            thing.
        """)
        line = "thing."
        options = detectCompletionType(os.path.abspath('Module.py'), source,
                                            5, len(line), '', self.pysmelldict)
        expected = CompletionOptions(Types.INSTANCE, klass='Module.aClass', parents=['object'])
        self.assertEquals(options, expected)
Esempio n. 17
0
 def testDetectParentsOfUnknownClass(self):
     source = dedent("""\
         from Nested.Package.Module import Class
         class Other(Class):
             def sth(self):
                 self.
     
     """)
     line = "%sself." % (' ' * 8)
     options = detectCompletionType(os.path.join('TestData', 'PackageA', 'Module.py'), source,
                         4, len(line), '', NESTEDDICT, update=False)
     expected = CompletionOptions(Types.INSTANCE, klass='PackageA.Module.Other', parents=['Nested.Package.Module.Class'])
     self.assertEquals(options, expected)
Esempio n. 18
0
    def testDetectModuleAttrLookupWithBase2(self):
        print '--------'
        source = dedent("""\
            from Nested.Package import Module as mod

            class Some(object):
                def init(self):
                    self.func(mod.EVT_, self.something)
        """)
        line = "%sself.func(mod.EVT_" % (" " * 8)
        options = detectCompletionType(os.path.join('TestData', 'PackageA', 'Module.py'), source,
                                            5, len(line), 'EVT_', NESTEDDICT, update=False)
        expected = CompletionOptions(Types.MODULE, module="Nested.Package.Module", showMembers=True)
        self.assertEquals(options, expected)
Esempio n. 19
0
    def testModuleCompletionThree(self):
        source = dedent("""\
            import Nested.Package.
            
        """)
        line = "import Nested.Package."
        options = detectCompletionType(os.path.join('TestData', 'PackageA',
                                                    'Module.py'),
                                       source,
                                       1,
                                       len(line),
                                       '',
                                       NESTEDDICT,
                                       update=False)
        expected = CompletionOptions(Types.MODULE,
                                     module="Nested.Package",
                                     showMembers=False)
        self.assertEqual(options, expected)

        source = dedent("""\
            import Ne
            
        """)
        line = "import Ne"
        options = detectCompletionType(os.path.join('TestData', 'PackageA',
                                                    'Module.py'),
                                       source,
                                       1,
                                       len(line),
                                       '',
                                       NESTEDDICT,
                                       update=False)
        expected = CompletionOptions(Types.MODULE,
                                     module="Ne",
                                     showMembers=False)
        self.assertEqual(options, expected)
Esempio n. 20
0
 def testInferShouldUpdatePYSMELLDICT(self):
     source = dedent("""\
         from Nested.Package.Module import Class
         class FreshClass(Class):
             something = 1
             def sth(self):
                 self.
     
     """)
     line = "%sself." % (' ' * 8)
     copiedDict = copy.deepcopy(self.pysmelldict)
     assert copiedDict == self.pysmelldict
     options = detectCompletionType(os.path.join('TestData', 'PackageA', 'Module.py'),
         source, 5, len(line), '', copiedDict)
     expected = CompletionOptions(Types.INSTANCE, klass='PackageA.Module.FreshClass', parents=['Nested.Package.Module.Class'])
     self.assertEquals(options, expected) #sanity
     klass = copiedDict['CLASSES']['PackageA.Module.FreshClass']
     self.assertEquals(klass['bases'], ['Nested.Package.Module.Class'])
     self.assertEquals(klass['properties'], ['something'])
     self.assertEquals(klass['methods'], [('sth', [], "")])
Esempio n. 21
0
 def testDetectAttrLookup(self):
     line = 'somethign.a'
     options = detectCompletionType('path', line, 1, len(line), 'a',
                                    self.pysmelldict)
     expected = CompletionOptions(Types.INSTANCE, klass=None, parents=[])
     self.assertEquals(options, expected)
Esempio n. 22
0
 def testDetectGlobalLookup(self):
     options = detectCompletionType('path', 'b', 1, 1, 'b',
                                    self.pysmelldict)
     expected = CompletionOptions(Types.TOPLEVEL)
     self.assertEquals(options, expected)
Esempio n. 23
0
 def testCompleteMembers(self):
     options = CompletionOptions(Types.INSTANCE, klass=None, parents=[])
     compls = findCompletions('a', self.pysmelldict, options)
     expected = [compMeth('am', 'aClass'), compProp('aprop', 'aClass')]
     self.assertEquals(compls, expected)
Esempio n. 24
0
    def testModuleCompletion(self):
        options = CompletionOptions(Types.MODULE,
                                    module="Ne",
                                    showMembers=False)
        expected = [dict(word='Nested', kind='t', dup='1')]
        compls = findCompletions('Ne', self.nestedDict, options)
        self.assertEquals(compls, expected)

        options = CompletionOptions(Types.MODULE,
                                    module="Nested",
                                    showMembers=False)
        expected = [dict(word='Package', kind='t', dup='1')]
        compls = findCompletions('P', self.nestedDict, options)
        self.assertEquals(compls, expected)

        options = CompletionOptions(Types.MODULE,
                                    module="Nested.Package",
                                    showMembers=False)
        expected = [dict(word='Module', kind='t', dup='1')]
        compls = findCompletions('', self.nestedDict, options)
        self.assertEquals(compls, expected)

        options = CompletionOptions(Types.MODULE,
                                    module="Mo",
                                    showMembers=False)
        expected = [dict(word='Module', kind='t', dup='1')]
        compls = findCompletions('Mo', self.pysmelldict, options)
        self.assertEquals(compls, expected)

        options = CompletionOptions(Types.MODULE,
                                    module="Module",
                                    showMembers=False)
        expected = []
        compls = findCompletions('', self.pysmelldict, options)
        self.assertEquals(compls, expected)

        options = CompletionOptions(Types.MODULE,
                                    module="Nested.Package",
                                    showMembers=True)
        expected = [dict(word='Module', kind='t', dup='1')]
        compls = findCompletions('', self.nestedDict, options)
        self.assertEquals(compls, expected)

        options = CompletionOptions(Types.MODULE,
                                    module="Nested.Package.Module",
                                    showMembers=True)
        expected = [
            dict(word='Class',
                 dup="1",
                 kind="t",
                 menu="Nested.Package.Module",
                 abbr="Class()"),
            dict(word='Something', dup="1", kind="t"),
        ]
        compls = findCompletions('', self.nestedDict, options)
        self.assertEquals(compls, expected)

        options = CompletionOptions(Types.MODULE, module="A", showMembers=True)
        expected = [
            dict(word='CONST_A', kind='d', dup='1', menu='A'),
            dict(word='CONST_B', kind='d', dup='1', menu='B'),
            dict(word='THING', kind='t', dup='1')
        ]
        compls = findCompletions('', self.complicatedDict, options)
        self.assertEquals(compls, expected)