test-runner/runtime_capabilities.py (33 lines of code) (raw):

# Copyright (c) Microsoft. All rights reserved. # Licensed under the MIT license. See LICENSE file in the project root for import adapters from msrest.exceptions import HttpOperationError, ClientRequestError from horton_settings import settings language_has_full_device_client = ("pythonv2", "node", "c") language_has_leaf_device_client = ("node",) language_has_service_client = ("node", "csharp", "java") class HortonCapabilities(object): def __init__(self): self.v2_connect_group = False self.system_control_app = False self.checks_for_leaks = False def collect_capabilities(horton_object): if horton_object.device_id: horton_object.wrapper_api = adapters.create_adapter( horton_object.adapter_address, "wrapper" ) try: caps = horton_object.wrapper_api.get_capabilities_sync() except (HttpOperationError, ClientRequestError): caps = None horton_object.capabilities = HortonCapabilities() if caps: flags = caps["flags"] for flag_name in flags: setattr(horton_object.capabilities, flag_name, flags[flag_name]) def collect_all_capabilities(): # BKTODO: add an under_test flag to settings and make _objects public so we can iterate for horton_object in ( settings.leaf_device, settings.test_module, settings.friend_module, settings.test_device, ): collect_capabilities(horton_object)