Best Python code snippet using autotest_python
net_utils.py
Source:net_utils.py  
...106        if self.was_down:107            self.down()108    def get_name(self):109        return self._name110    def parse_ethtool(self, field, match, option='', next_field=''):111        output = bin_utils.system_output('%s %s %s' % (self.ethtool,112                                                   option, self._name))113        if output:114            match = re.search('\n\s*%s:\s*(%s)%s' %115                              (field, match, next_field), output, re.S)116            if match:117                return match.group(1)118        return ''119    def get_stats(self):120        stats = {}121        stats_path = '/sys/class/net/%s/statistics/' % self._name122        for stat in os.listdir(stats_path):123            f = open(stats_path + stat, 'r')124            if f:125                stats[stat] = int(f.read())126                f.close()127        return stats128    def get_stats_diff(self, orig_stats):129        stats = self.get_stats()130        for stat in stats.keys():131            if stat in orig_stats:132                stats[stat] = stats[stat] - orig_stats[stat]133            else:134                stats[stat] = stats[stat]135        return stats136    def get_driver(self):137        driver_path = os.readlink('/sys/class/net/%s/device/driver' %138                                  self._name)139        return os.path.basename(driver_path)140    def get_carrier(self):141        f = open('/sys/class/net/%s/carrier' % self._name)142        if not f:143            return ''144        carrier = f.read().strip()145        f.close()146        return carrier147    def get_supported_link_modes(self):148        result = self.parse_ethtool('Supported link modes', '.*',149                                    next_field='Supports auto-negotiation')150        return result.split()151    def get_advertised_link_modes(self):152        result = self.parse_ethtool('Advertised link modes', '.*',153                                    next_field='Advertised auto-negotiation')154        return result.split()155    def is_autoneg_advertised(self):156        result = self.parse_ethtool('Advertised auto-negotiation',157                                        'Yes|No')158        return result == 'Yes'159    def get_speed(self):160        return int(self.parse_ethtool('Speed', '\d+'))161    def is_full_duplex(self):162        result = self.parse_ethtool('Duplex', 'Full|Half')163        return result == 'Full'164    def is_autoneg_on(self):165        result = self.parse_ethtool('Auto-negotiation', 'on|off')166        return result == 'on'167    def get_wakeon(self):168        return self.parse_ethtool('Wake-on', '\w+')169    def is_rx_summing_on(self):170        result = self.parse_ethtool('rx-checksumming', 'on|off', '-k')171        return result == 'on'172    def is_tx_summing_on(self):173        result = self.parse_ethtool('tx-checksumming', 'on|off', '-k')174        return result == 'on'175    def is_scatter_gather_on(self):176        result = self.parse_ethtool('scatter-gather', 'on|off', '-k')177        return result == 'on'178    def is_tso_on(self):179        result = self.parse_ethtool('tcp segmentation offload',180                                    'on|off', '-k')181        return result == 'on'182    def is_pause_autoneg_on(self):183        result = self.parse_ethtool('Autonegotiate', 'on|off', '-a')184        return result == 'on'185    def is_tx_pause_on(self):186        result = self.parse_ethtool('TX', 'on|off', '-a')187        return result == 'on'188    def is_rx_pause_on(self):189        result = self.parse_ethtool('RX', 'on|off', '-a')190        return result == 'on'191    def _set_loopback(self, mode, enable_disable):192        return bin_utils.system('%s -L %s %s %s' %193                      (self.ethtool, self._name, mode, enable_disable),194                      ignore_status=True)195    def enable_loopback(self):196        # If bonded do not set loopback mode.197        # Try mac loopback first then phy loopback198        # If both fail, raise an error199        if bond().is_enabled():200            raise error.TestError('Unable to enable loopback while '201                                  'bonding is enabled.')202        if (self._set_loopback('phyint', 'enable') > 0 and203            self._set_loopback('mac', 'enable') > 0):...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
