передача объекта другого класса, который возвращает объекты массива, полученный объект 'method' не является подписанным - PullRequest
0 голосов
/ 27 марта 2020

нужно ваше понимание:

В моей собственной настройке теста (init_setup) мне нужно вызвать другой тест, который уже определен в классе Test_Create_Inventory (). Проблема в том, что у этого класса есть фиксатор (init_api), который возвращает массив функций apis.

В init_setup: в строке inventory.test_post_inventory_data () я получил, что объект 'method' не является подписываемым, потому что внутри он вызывает api объекта следующим образом: init_api ["networkAPI"]. PostJsonData (...)

Как мне заставить это работать, если мне не разрешено удалять фиксатор init_api () из этого класса? Я знаю, что смогу заставить его работать, с помощью полной фиксации избавления init_api, переместить его код прямо в test_post_inventory_data ().

Спасибо!

Мои собственные настройки:

    @pytest.fixture(scope="class", autouse=True)
    def init_setup(self, get_tenantid, api_client, read_test_data):
        #import Test_Create_Inventory class here
        inventory = Test_Create_Inventory()
        inventory.test_post_inventory_data(read_test_data, inventory.init_api)

# this class is defined in another file
class Test_Create_Inventory():
    @pytest.fixture
    def init_api(self, api_client):
        self.networkAPI = NetworkAPI(api_client)
        self.sitesAPI = SitesApi(api_client)
        return {"networkAPI": self.networkAPI, "sitesAPI": self.sitesAPI}

    def test_post_inventory_data(self, read_test_data, init_api):
        ...
        init_api["networkAPI"].postJsonData(json.dumps(data))

...