def test_load_module_same_module_twice(self):
        # force the module to not be in the current path
        import os
        from inspect import isclass

        module_filename = join(self.test_dir,"./.tmp/tmp_module5.py")
        module = __load_module__(module_filename)

        classes = [name for name in _dir(module) if isclass(getattr(module,name))]
    
        self.assertEquals(classes,['foobar','foobar2','foobar3','mybase'])

        module_filename = "./.tmp_dupe/tmp_module5.py"
        with self.assertRaises(Exception):
            module = __load_module__(module_filename)
 def test_get_module_class_method_vars(self):
     
     module_filename = "tmp_module2.py"
     module = __load_module__(module_filename,allowdupe=True)
     
     vars = _getvarfromsource(module.foobar2.boo2)
     self.assertListEqual(['a','b'],vars)
Esempio n. 3
0
    def test_get_module_class_method_args(self):

        module = __load_module__(self.tmp_module2, allowdupe=True)
        tokens = __tokenize__(self.tmp_module2)

        args = _getargsfromsource(module.foobar2.boohoo, tokens)
        self.assertListEqual(['self', 'banana'], args)
Esempio n. 4
0
    def test_get_proc_signature(self):

        module = __load_module__(self.tmp_module2, allowdupe=True)
        tokens = __tokenize__(self.tmp_module2)

        self.assertListEqual(['fe', 'fi', 'fo', 'fum'],
                             _getargsfromsource(module.myfunc, tokens))
 def test_get_proc_signature(self):
     
     module_filename = "tmp_module2.py"
     module = __load_module__(module_filename,allowdupe=True)
     tokens = __tokenize__(join(self.test_dir,"tmp_module2.py"))
     
     self.assertListEqual(['fe','fi','fo','fum'],_getargsfromsource(module.myfunc,tokens))
Esempio n. 6
0
    def test_load_module_same_module_twice(self):
        # force the module to not be in the current path
        import os
        from inspect import isclass

        module_filename = path.join(TESTDIR, "tmp_module5.py")
        module = __load_module__(module_filename)

        classes = [
            name for name in _dir(module) if isclass(getattr(module, name))
        ]

        self.assertEquals(classes, ['foobar', 'foobar2', 'foobar3', 'mybase'])

        module_filename = "./.tmp_dupe/tmp_module5.py"
        with self.assertRaises(Exception):
            module = __load_module__(module_filename)
Esempio n. 7
0
    def test_isuserdefnclass(self):

        from inspect import isclass
        module_filename = path.join(TESTDIR,
                                    "test_get_module_classes_with_imports.py")
        module = __load_module__(module_filename, allowdupe=True)

        self.assertTrue(isuserclass('foobar10', module_filename))
        self.assertFalse(isuserclass('GetoptError', module_filename))
 def test_get_module_class_method_args(self):
     
     module_filename = "tmp_module2.py"
     module = __load_module__(module_filename,allowdupe=True)
     
     tokens = __tokenize__(join(self.test_dir,"tmp_module2.py"))
     
     args = _getargsfromsource(module.foobar2.boohoo,tokens)
     self.assertListEqual(['self','banana'],args)
Esempio n. 9
0
    def test_get_module_classes_with_imports(self):

        from inspect import isclass
        module_filename = path.join(TESTDIR,
                                    "test_get_module_classes_with_imports.py")
        module = __load_module__(module_filename, allowdupe=True)
        classes = _getclasses(module, module_filename)

        self.assertEquals(classes, ['foobar10'])
Esempio n. 10
0
    def test_isuserfunc(self):

        from inspect import isclass
        module_filename = path.join(TESTDIR,
                                    "test_get_module_classes_with_imports.py")
        module = __load_module__(module_filename, allowdupe=True)

        self.assertTrue(isuserfunc('myfunk', module_filename))
        self.assertFalse(isuserfunc('gnu_getopt', module_filename))
Esempio n. 11
0
    def test_get_module_classes_with_imports(self):

        from inspect import isclass
        test_module = "test_get_module_classes_with_imports.py"
        
        module_filename = join(self.test_dir+"/test_misc",test_module)
        module = __load_module__(module_filename,allowdupe=True)        
        classes = _getclasses(module,test_module)
                    
        self.assertEquals(classes,['foobar10'])
Esempio n. 12
0
    def test_isuserfunc(self):

        from inspect import isclass
        test_module = "test_get_module_classes_with_imports.py"
        
        module_filename = join(self.test_dir+"/test_misc",test_module)
        module = __load_module__(module_filename,allowdupe=True)        
                    
        self.assertTrue(isuserfunc('myfunk',test_module))
        self.assertFalse(isuserfunc('gnu_getopt',test_module))
Esempio n. 13
0
    def test_get_module_classes(self):

        from inspect import isclass
        
        module_filename = "tmp_module2.py"
        module = __load_module__(module_filename,allowdupe=True)
        
        classes = [name for name in _dir(module) if isclass(getattr(module,name))]
        
        self.assertEquals(classes,['foobar','foobar2','foobar3','mybase'])
Esempio n. 14
0
    def test_isuserdefnclass(self):

        from inspect import isclass
        test_module = "test_get_module_classes_with_imports.py"
        
        module_filename = join(self.test_dir+"/test_misc",test_module)
        module = __load_module__(module_filename,allowdupe=True)        
                    
        self.assertTrue(isuserclass('foobar10',test_module))
        self.assertFalse(isuserclass('GetoptError',test_module))
Esempio n. 15
0
    def test_get_module_functions(self):

        from inspect import isroutine
        
        module_filename = "tmp_module2.py"
        module = __load_module__(module_filename,allowdupe=True)
        
        routines = [name for name in _dir(module) if isroutine(getattr(module,name))]
        
        self.assertListEqual(routines,['myfunc'])
Esempio n. 16
0
    def test_get_module_functions(self):

        from inspect import isroutine

        module = __load_module__(self.tmp_module2, allowdupe=True)

        routines = [
            name for name in _dir(module) if isroutine(getattr(module, name))
        ]

        self.assertListEqual(routines, ['myfunc'])
Esempio n. 17
0
    def test_get_module_classes(self):

        from inspect import isclass

        module = __load_module__(self.tmp_module2, allowdupe=True)

        classes = [
            name for name in _dir(module) if isclass(getattr(module, name))
        ]

        self.assertEquals(classes, ['foobar', 'foobar2', 'foobar3', 'mybase'])
Esempio n. 18
0
    def test_load_module_not_in_cwd_relpath_forced(self):
        # force the module to not be in the current path
        import os
        from inspect import isclass

        module_filename = join(self.test_dir,"./.tmp/tmp_module4.py")
        
        module = __load_module__(module_filename,allowdupe=True)

        classes = [name for name in _dir(module) if isclass(getattr(module,name))]
        
        self.assertEquals(classes,['foobar','foobar2','foobar3','mybase'])
Esempio n. 19
0
    def test_get_module_class_methods(self):
        from inspect import isclass
        
        module_filename = "tmp_module2.py"
        module = __load_module__(module_filename,allowdupe=True)
        
        classes = [name for name in _dir(module) if isclass(getattr(module,name))]
        
        m=[]
        for cls in classes:
            m = m + _getclassmethods(getattr(module,cls))

        self.assertListEqual(['boo','boohoo','boo2','boo3'],m)
Esempio n. 20
0
    def test_get_module_class_methods(self):
        from inspect import isclass

        module = __load_module__(self.tmp_module2, allowdupe=True)

        classes = [
            name for name in _dir(module) if isclass(getattr(module, name))
        ]

        m = []
        for cls in classes:
            m = m + _getclassmethods(getattr(module, cls))

        self.assertListEqual(['boo', 'boohoo', 'boo2', 'boo3'], m)
Esempio n. 21
0
    def test_get_module_contents(self):
        
        from inspect import getmembers
        
        module_filename = "tmp_module.py"
        module = __load_module__(module_filename,allowdupe=True)
        
        self.assertEquals(['foobar'],[member for member in dir(module) if not member.startswith('__')])
    
        # get methods of a module member
        self.assertEquals(['boo'],[member[0] for member in getmembers(module.foobar) if not member[0].startswith('__')])

        # and using a diff function to load members
        self.assertEquals(['boo'],_getmembers(module.foobar).keys()) 
Esempio n. 22
0
    def test_load_module_not_in_cwd_relpath_forced(self):
        # force the module to not be in the current path
        import os
        from inspect import isclass

        module_filename = path.join(TESTDIR, "tmp_module4.py")

        module = __load_module__(module_filename, allowdupe=True)

        classes = [
            name for name in _dir(module) if isclass(getattr(module, name))
        ]

        self.assertEquals(classes, ['foobar', 'foobar2', 'foobar3', 'mybase'])
Esempio n. 23
0
 def test_load_module_not_in_cwd_abspath(self):
     # if module.py in /home/burtnolej; move cwd to /tmp and load
     # /home/burtnolej/module.py
     import os
     from inspect import isclass
     _cwd = os.getcwd()
     os.chdir("/tmp")
     module_filename = "tmp_module3.py"
     module_path = os.path.join(_cwd,"tmp_module3.py")
     module = __load_module__(module_path,allowdupe=True)
     os.chdir(_cwd)
     
     classes = [name for name in _dir(module) if isclass(getattr(module,name))]
     
     self.assertEquals(classes,['foobar','foobar2','foobar3','mybase'])
Esempio n. 24
0
    def test_get_module_info_all(self):

        #need to put tmp_module to test_get_module_info_all.py
        #as we are picking up tmp_module from a previous load
        module_filename = path.join(TESTDIR, "test_get_module_info_all.py")

        module = __load_module__(module_filename, allowdupe=True)

        tokens = __getsourceaslist__(module_filename, module)

        self.assertListEqual([
            'foobart', 'boo', ['self'], [], ['blahblah'], 'foobart2', 'boohoo',
            ['self', 'banana'], [], 'boo2', ['self'], ['a', 'b'], [],
            'foobart3', 'boo3', ['self'], ['self.foobar'], [], 'mybaser', [],
            'myfuncy', ['fe', 'fi', 'fo', 'fum'], ['foo'], 'mylocaly'
        ], tokens)
Esempio n. 25
0
 def py2xml(self,**kwargs):
     
     for k,v in kwargs.iteritems():
         setattr(self,k,v)
             
     if not hasattr(self,'module'):
         self.module = __load_module__(self.input_filename,allowdupe=True)
         
     from inspect import getmembers, isclass, isroutine
             
     tokens = __tokenize__(self.input_filename)
     root = xmltree.Element('root')
     
     for item in _dir(self.module):
         obj = getattr(self.module,item)
         
         if isclass(obj):
             if isuserclass(item,self.input_filename):
                 cls_element = __add_element__(root,item,'class')
                 for m in _getclassmethods(obj):
                     clsmth_element = __add_element__(cls_element,m,'method')
                     
                     for arg in _getargsfromsource(getattr(obj,m),tokens):
                         __add_element__(clsmth_element,arg,'arg')
                     
                     for var in _getvarfromsource(getattr(obj,m)):
                         __add_element__(clsmth_element,var,'var')
     
                 for memvar in _getclassmethods(obj,True):
                     __add_element__(cls_element,memvar,'var')
                 
         elif isroutine(obj):
             if isuserfunc(item,self.input_filename):
                 def_element = __add_element__(root,item,'def')
                 
                 for arg in _getargsfromsource(obj,tokens):
                     __add_element__(def_element,arg,'arg')
                 
                 for var in _getvarfromsource(obj):
                     __add_element__(def_element,var,'var')        
         else:
             __add_element__(root,item,'var')
     
     output_filename = __convert_filename__(self.input_filename,".xml")
     __xmltofile__(root,output_filename)
     
     return(output_filename)
Esempio n. 26
0
    def test_load_module_not_in_cwd_abspath(self):
        # if module.py in /home/burtnolej; move cwd to /tmp and load
        # /home/burtnolej/module.py
        import os
        from inspect import isclass
        _cwd = os.getcwd()
        os.chdir(LOGDIR)

        module_path = path.join(TESTDIR, "tmp_module3.py")
        module = __load_module__(module_path, allowdupe=True)
        os.chdir(_cwd)

        classes = [
            name for name in _dir(module) if isclass(getattr(module, name))
        ]

        self.assertEquals(classes, ['foobar', 'foobar2', 'foobar3', 'mybase'])
Esempio n. 27
0
 def test_get_module_class_vars(self):
     
     from inspect import isclass, ismethod
     
     module_filename = "tmp_module2.py"
     module = __load_module__(module_filename,allowdupe=True)
     
     classes = [name for name in _dir(module) if isclass(getattr(module,name))]
     
     v=[]
     _m = _getmembers(module.foobar)
     
     for key, obj in _m.iteritems():
         if not ismethod(obj):
             v.append(key)
      
     self.assertListEqual(['blahblah'],v)
Esempio n. 28
0
    def test_get_module_info_all(self):

        #need to put tmp_module to test_get_module_info_all.py
        #as we are picking up tmp_module from a previous load
        
        module_filename = join(self.test_dir,"./test_misc/test_get_module_info_all.py")
        
        module = __load_module__(module_filename,allowdupe=True)
        
        tokens = __getsourceaslist__(join(self.test_dir,module_filename), module)
                
        self.assertListEqual(['foobart', 'boo', ['self'], [], ['blahblah'], 
                              'foobart2', 'boohoo', ['self', 'banana'], [], 'boo2', ['self'], ['a', 'b'], [], 
                              'foobart3', 'boo3', ['self'], ['self.foobar'], [], 
                              'mybaser', [], 
                              'myfuncy',  ['fe', 'fi', 'fo', 'fum'], ['foo'], 
                              'mylocaly'],tokens)   
Esempio n. 29
0
    def test_get_module_contents(self):

        from inspect import getmembers

        module = __load_module__(self.tmp_module1, allowdupe=True)

        self.assertEquals(
            ['foobar'],
            [member for member in dir(module) if not member.startswith('__')])

        # get methods of a module member
        self.assertEquals(['boo'], [
            member[0] for member in getmembers(module.foobar)
            if not member[0].startswith('__')
        ])

        # and using a diff function to load members
        self.assertEquals(['boo'], _getmembers(module.foobar).keys())
Esempio n. 30
0
    def test_get_module_class_vars(self):

        from inspect import isclass, ismethod

        module = __load_module__(self.tmp_module2, allowdupe=True)

        classes = [
            name for name in _dir(module) if isclass(getattr(module, name))
        ]

        v = []
        _m = _getmembers(module.foobar)

        for key, obj in _m.iteritems():
            if not ismethod(obj):
                v.append(key)

        self.assertListEqual(['blahblah'], v)
Esempio n. 31
0
    def test_get_module_class_method_vars(self):

        module = __load_module__(self.tmp_module2, allowdupe=True)

        vars = _getvarfromsource(module.foobar2.boo2)
        self.assertListEqual(['a', 'b'], vars)
Esempio n. 32
0
    def test_get_variables_in_function(self):

        module = __load_module__(self.tmp_module2, allowdupe=True)

        self.assertListEqual(['foo'], _getvarfromsource(module.myfunc))
Esempio n. 33
0
    def test_get_variables_in_function(self):

        module_filename = "tmp_module2.py"
        module = __load_module__(module_filename,allowdupe=True)
        
        self.assertListEqual(['foo'],_getvarfromsource(module.myfunc))