2012-05-02 3 views
-2

я имею проблему в моих модульных тестов, я не знаю, почему, я gotting следующий стек:модульные тесты питон «__init __() принимает ровно 2 аргумента (1 дано)»

Traceback (most recent call last): 
    File "novaapiclient_tests.py", line 11, in test_create_server 
    nova = novaapiclient.NovaAPIClient() 
TypeError: __init__() takes exactly 2 arguments (1 given) 

следовать моему тестовому коду:

class TestFunction(unittest.TestCase): 

    def setUp(self): 
     self.nova = novaapiclient.NovaAPIClient() 

    def test_create_server(self): 
     self.setUp() 
     lsbf = self.nova.lst_of_servers(self.nova.listServers()) 
     image = "3f9e6696-2ed2-4e06-ae16-c828062addbe" 
     flavor = "m1.tiny" 
     name = "testing_unit" 
     self.nova.createServer(image, flavor, name) 
     time.sleep(60) 
     lsaf = self.nova.lst_of_servers(self.nova.listServers()) 
     if(len(lsbf) < len(lsaf)): 
      assertTrue(True) 
     else: 
      assertTrue(False) 


    def delete_server(self): 
     self.setUp() 
     serv_id = "13e0c3de-d736-47ec-bc22-3a794aa3e2a9" 
     self.nova.deleteServer(serv_id) 
     ls = self.nova.lst_of_servers(self.nova.listServers()) 
     j = 0 
     fin = False 
     while(j < 3 and not fin): 
      time.sleep(75) 
      for i in range(len(ls)): 
       if(serv_id == str(ls[i])): 
        assertTrue(False) 
        break 

       assertTrue(True) 
       fin = True    
       break 
      j += 1 

Я попытался создать метод инициализации и вырезать «я» в методах, но я продолжаю печатать эту ошибку.

+1

Можем ли мы увидеть «novaapiclient»? Это класс с '__init __()', который ожидает больше параметров. –

+3

Как указывает sr2222, вам не хватает аргумента в инициализаторе NovaAPIClient. Кроме того, вам не нужно вызывать self.setUp() вручную. Если вы запускаете тест с помощью тестового бегуна (например, если вы запустите 'unittest.main()'), класс setUp будет вызываться для вас автоматически. –

+0

@MarkHildreth На самом деле, не будет ли причиной 'setUp()' вызываться дважды, возможно, с очень плохими последствиями? –

ответ

5

Конструктор novaapiclient.NovaAPIClient должен получить аргумент, но вы его не передаете.

В вашем this question вы передали аргумент novaapiclient.NovaAPIClient, поэтому я предполагаю, что вам нужно сделать что-то подобное.

+0

Это сработало, извините за тупой вопрос. – guisantogui

Смежные вопросы