2013-06-03 9 views
1

Есть два файла в руTypeError: 'модуль' объект не вызываемая при запуске UnitTest

py/ 
    bubble.py 
    unit.py 

unit.py является:

import random 
import unittest 
from py import bubble 

def getl(): 
    l = [] 
    for i in range(10): 
     l.append(random.randint(1,20)) 
    return l 

class TestBubble(unittest.TestCase): 
    def setUp(self): 
     self.l = getl() 

    def test_bubble(self): 
     sorted_list = sorted(self.l) 
     bubble(self.l) 
     self.assertListEqual(self.l, sorted_list) 

if __name__ == '__main__': 
    unittest.main() 

При выполнении этого сценария я получил это:

E 
====================================================================== 
ERROR: test_bubble (__main__.TestBubble) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "unit.py", line 27, in test_bubble 
    bubble(self.l) 
TypeError: 'module' object is not callable 

---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

FAILED (errors=1) 

В чем проблема с этим скриптом?

+0

Вам не нужно добавлять 'from py import bubble', потому что они находятся на одном уровне. Просто используйте 'import bubble' –

ответ

4

Эта линия с проблемой:

bubble(self.l) 

bubble является модулем, и вы пытаетесь вызвать его как функцию. Например, вы должны позвонить bubble.func(self.l), где func - это ваша функция.

+0

Да, я это понял. –