How to use _from_config_with_resolver method in avocado

Best Python code snippet using avocado_python

suite.py

Source:suite.py Github

copy

Full Screen

...104 if name is None:105 name = str(uuid4())106 return cls(name=name, config=config, tests=tests)107 @classmethod108 def _from_config_with_resolver(cls, config, name=None):109 ignore_missing = config.get('run.ignore_missing_references')110 references = config.get('run.references')111 try:112 hint = None113 hint_filepath = '.avocado.hint'114 if os.path.exists(hint_filepath):115 hint = HintParser(hint_filepath)116 resolutions = resolve(references,117 hint=hint,118 ignore_missing=ignore_missing)119 except JobTestSuiteReferenceResolutionError as details:120 raise TestSuiteError(details)121 tasks = resolutions_to_tasks(resolutions, config)122 if name is None:123 name = str(uuid4())124 return cls(name=name, config=config, tests=tasks,125 resolutions=resolutions)126 def _get_stats_from_nrunner(self):127 stats = {}128 for test in self.tests:129 stats = self._increment_dict_key_counter(stats, test.runnable.kind)130 return stats131 def _get_stats_from_runner(self):132 stats = {}133 mapping = loader.get_type_label_mapping()134 for cls, _ in self.tests:135 if isinstance(cls, str):136 cls = Test137 stats = self._increment_dict_key_counter(stats, mapping[cls])138 return stats139 def _get_tags_stats_from_nrunner(self):140 stats = {}141 for test in self.tests:142 if test.runnable is None:143 continue144 tags = test.runnable.tags or {}145 for tag in tags:146 stats = self._increment_dict_key_counter(stats, tag)147 return stats148 def _get_tags_stats_from_runner(self):149 stats = {}150 for test in self.tests:151 params = test[1]152 for tag in params.get('tags', {}):153 stats = self._increment_dict_key_counter(stats, tag)154 return stats155 @staticmethod156 def _increment_dict_key_counter(dict_object, key):157 try:158 dict_object[key.lower()] += 1159 except KeyError:160 dict_object[key.lower()] = 1161 return dict_object162 @property163 def references(self):164 if self._references is None:165 self._references = self.config.get('run.references')166 return self._references167 @property168 def runner(self):169 if self._runner is None:170 runner_name = self.config.get('run.test_runner') or 'runner'171 try:172 runner_extension = RunnerDispatcher()[runner_name]173 self._runner = runner_extension.obj174 except KeyError:175 raise TestSuiteError("Runner not implemented.")176 return self._runner177 @property178 def size(self):179 """The overall length/size of this test suite."""180 if self.tests is None:181 return 0182 return len(self.tests)183 @property184 def stats(self):185 """Return a statistics dict with the current tests."""186 runner_name = self.config.get('run.test_runner') or 'runner'187 if runner_name == 'runner':188 return self._get_stats_from_runner()189 elif runner_name == 'nrunner':190 return self._get_stats_from_nrunner()191 return {}192 @property193 def status(self):194 if self.tests is None:195 return TestSuiteStatus.RESOLUTION_NOT_STARTED196 elif self.size == 0:197 return TestSuiteStatus.TESTS_NOT_FOUND198 elif self.size > 0:199 return TestSuiteStatus.TESTS_FOUND200 else:201 return TestSuiteStatus.UNKNOWN202 @property203 def tags_stats(self):204 """Return a statistics dict with the current tests tags."""205 runner_name = self.config.get('run.test_runner') or 'runner'206 if runner_name == 'runner':207 return self._get_tags_stats_from_runner()208 elif runner_name == 'nrunner':209 return self._get_tags_stats_from_nrunner()210 return {}211 @property212 def test_parameters(self):213 """Placeholder for test parameters.214 This is related to --test-parameters command line option or215 (run.test_parameters).216 """217 if self._test_parameters is None:218 self._test_parameters = {name: value for name, value219 in self.config.get('run.test_parameters',220 [])}221 return self._test_parameters222 @property223 def variants(self):224 if self._variants is None:225 variants = Varianter()226 if not variants.is_parsed():227 try:228 variants.parse(self.config)229 except (IOError, ValueError) as details:230 raise OptionValidationError("Unable to parse "231 "variant: %s" % details)232 self._variants = variants233 return self._variants234 def run(self, job):235 """Run this test suite with the job context in mind.236 :param job: A :class:`avocado.core.job.Job` instance.237 :rtype: set238 """239 return self.runner.run_suite(job, self)240 @classmethod241 def from_config(cls, config, name=None, job_config=None):242 """Helper method to create a TestSuite from config dicts.243 This is different from the TestSuite() initialization because here we244 are assuming that you need some help to build the test suite. Avocado245 will try to resolve tests based on the configuration information246 instead of assuming pre populated tests.247 If you need to create a custom TestSuite, please use the TestSuite()248 constructor instead of this method.249 :param config: A config dict to be used on the desired test suite.250 :type config: dict251 :param name: The name of the test suite. This is optional and default252 is a random uuid.253 :type name: str254 :param job_config: The job config dict (a global config). Use this to255 avoid huge configs per test suite. This is also256 optional.257 :type job_config: dict258 """259 suite_config = config260 config = settings.as_dict()261 config.update(suite_config)262 if job_config:263 config.update(job_config)264 runner = config.get('run.test_runner') or 'runner'265 if runner == 'nrunner':266 suite = cls._from_config_with_resolver(config, name)267 else:268 suite = cls._from_config_with_loader(config, name)269 if not config.get('run.ignore_missing_references'):270 if not suite.tests:271 msg = ("Test Suite could not be create. No test references "272 "provided nor any other arguments resolved into tests")273 raise TestSuiteError(msg)...

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run avocado automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful