Best Python code snippet using avocado_python
parser.py
Source:parser.py  
...156            key, value = kwarg.split('=')157            result[key] = value158        return result159    def _get_resolutions_by_kind(self, kind, paths):160        self.validate_kind_section(kind)161        resolutions = []162        success = ReferenceResolutionResult.SUCCESS163        config = {'uri': self._get_uri_from_section(kind),164                  'args': self._get_args_from_section(kind),165                  'kwargs': self._get_kwargs_from_section(kind)}166        for path in paths:167            uri = config.get('uri')168            args = config.get('args')169            kwargs = config.get('kwargs')170            if uri == '$testpath':171                uri = path172            if '$testpath' in args:173                args = [item.replace('$testpath', path) for item in args]174            if '$testpath' in kwargs.values():175                kwargs = {k: v.replace('$testpath', path)176                          for k, v in kwargs.items()}177            runnable = Runnable(kind, uri, *args, **kwargs)178            resolutions.append(ReferenceResolution(reference=path,179                                                   result=success,180                                                   resolutions=[runnable],181                                                   origin=path))182        return resolutions183    def _get_uri_from_section(self, section):184        return self.config.get(section, 'uri')185    def _parse(self):186        self.config = ConfigParser()187        config_paths = self.config.read(self.filename)188        if not config_paths:189            raise ConfigFileNotFound(self.filename)190    def get_resolutions(self):191        """Return a list of resolutions based on the file definitions."""192        resolutions = []193        for kind in self.config['kinds']:194            files = self.config.get('kinds', kind)195            resolutions.extend(self._get_resolutions_by_kind(kind,196                                                             glob(files)))197        return resolutions198    def validate_kind_section(self, kind):199        """Validates a specific "kind section".200        This method will raise a `settings.SettingsError` if any problem is201        found on the file.202        :param kind: a string with the specific section.203        """204        if kind not in self.config:205            msg = 'Section {} is not defined. Please check your hint file.'206            raise SettingsError(msg.format(kind))207        uri = self._get_uri_from_section(kind)208        if uri is None:209            msg = "uri needs to be defined inside {}".format(kind)...test_hintfiles.py
Source:test_hintfiles.py  
...24        self.wrong_hint = HintParser(self.wrong_file.name)25        self.good_hint = HintParser(self.good_file.name)26    def test_wrong_parser(self):27        with self.assertRaises(SettingsError) as context:28            self.wrong_hint.validate_kind_section('tap')29        self.assertTrue('Section tap is not defined' in str(context.exception))30    @skipUnlessPathExists('/bin/true')31    def test_types(self):32        res = self.good_hint.get_resolutions()33        self.assertEqual(len(res), 1)34        self.assertIsInstance(res[0], ReferenceResolution)35        resolutions = res[0].resolutions36        self.assertEqual(len(resolutions), 1)37        self.assertIsInstance(resolutions[0], Runnable)38    @skipUnlessPathExists('/bin/true')39    def test_reference_names(self):40        res = self.good_hint.get_resolutions()[0]41        self.assertEqual(res.reference, '/bin/true')42        self.assertEqual(res.resolutions[0].uri, '/bin/true')...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!!
