def test_get_presence(self, duthosts, enum_rand_one_per_hwsku_hostname, localhost, platform_api_conn): for i in self.sfp_setup["sfp_test_port_indices"]: presence = sfp.get_presence(platform_api_conn, i) if self.expect(presence is not None, "Unable to retrieve transceiver {} presence".format(i)): if self.expect(isinstance(presence, bool), "Transceiver {} presence appears incorrect".format(i)): self.expect(presence is True, "Transceiver {} is not present".format(i)) self.assert_expectations()
def test_get_presence(self, duthost, localhost, platform_api_conn): for i in range(self.num_sfps): presence = sfp.get_presence(platform_api_conn, i) if self.expect(presence is not None, "Unable to retrieve transceiver {} presence".format(i)): if self.expect(isinstance(presence, bool), "Transceiver {} presence appears incorrect".format(i)): self.expect(presence is True, "Transceiver {} is not present".format(i)) self.assert_expectations()
def setup(self, request, platform_api_conn): self.skip_absent_sfp = request.config.getoption("--skip-absent-sfp") if self.num_sfps is None: try: self.num_sfps = int(chassis.get_num_sfps(platform_api_conn)) except: pytest.fail("num_sfps is not an integer") self.candidate_sfp = [] if self.skip_absent_sfp: # Skip absent SFP if option "--skip-absent-sfp" set to True for i in range(self.num_sfps): try: if sfp.get_presence(platform_api_conn, i): self.candidate_sfp.append(i) except Exception: pytest.fail("get_presence API is not supported, failed to compose present SFP list") else: self.candidate_sfp = range(self.num_sfps)
def setup(self, request, duthosts, enum_rand_one_per_hwsku_hostname, platform_api_conn): duthost = duthosts[enum_rand_one_per_hwsku_hostname] if duthost.is_supervisor_node(): pytest.skip("skipping for supervisor node") self.skip_absent_sfp = request.config.getoption("--skip-absent-sfp") internal_intf = re.compile(r'^Ethernet-BP|^Ethernet-IB') self.list_sfps = [] # get expected data from platform.json if not present get from port_config.ini if duthost.facts.get("interfaces"): intfs = duthost.facts.get("interfaces") for intf in intfs: if re.match(internal_intf, intf): logging.debug( "skipping internal interface {}".format(intf)) continue index_list = [ int(x) for x in duthost.facts["interfaces"][intf] ['index'].split(",") ] self.list_sfps.extend(set(index_list)) else: int_list = get_port_map(duthost, 'all') for k, v in int_list.items(): self.list_sfps.extend(v) self.list_sfps.sort() self.candidate_sfp = [] if self.skip_absent_sfp: # Skip absent SFP if option "--skip-absent-sfp" set to True for i in self.list_sfps: try: if sfp.get_presence(platform_api_conn, i): self.candidate_sfp.append(i) except Exception: pytest.fail( "get_presence API is not supported for index {}, failed to compose present SFP list" .format(i)) else: self.candidate_sfp = self.list_sfps