Best Python code snippet using avocado_python
runnable.py
Source:runnable.py
...319 "configuration_used", []320 )321 return capabilities322 @staticmethod323 def is_kind_supported_by_runner_command(324 kind, runner_cmd, capabilities=None, env=None325 ):326 """Checks if a runner command that seems a good fit declares support."""327 if capabilities is None:328 capabilities = Runnable.get_capabilities_from_runner_command(329 runner_cmd, env330 )331 return kind in capabilities.get("runnables", [])332 @staticmethod333 def _module_exists(module_name):334 """Returns whether a nrunner "runner" module exists."""335 module_filename = f"{module_name}.py"336 mod_path = os.path.join("plugins", "runners", module_filename)337 return pkg_resources.resource_exists("avocado", mod_path)338 @staticmethod339 def pick_runner_command(kind, runners_registry=None):340 """Selects a runner command based on the runner kind.341 And when finding a suitable runner, keeps found runners in registry.342 This utility function will look at the given kind and try to find343 a matching runner. The matching runner probe results are kept in344 a registry (that is modified by this function) so that further345 executions take advantage of previous probes.346 This is related to the :data:`SpawnMethod.STANDALONE_EXECUTABLE`347 :param kind: runners' kind348 :type kind: str349 :param runners_registry: a registry with previously found (and not350 found) runners keyed by runnable kind351 :type runners_registry: dict352 :returns: command line arguments to execute the runner353 :rtype: list of str or None354 """355 if runners_registry is None:356 runners_registry = RUNNERS_REGISTRY_STANDALONE_EXECUTABLE357 runner_cmd = runners_registry.get(kind)358 if runner_cmd is False:359 return None360 if runner_cmd is not None:361 return runner_cmd362 # When running Avocado Python modules, the interpreter on the new363 # process needs to know where Avocado can be found.364 env = os.environ.copy()365 env["PYTHONPATH"] = ":".join(p for p in sys.path)366 standalone_executable_cmd = [f"avocado-runner-{kind}"]367 if Runnable.is_kind_supported_by_runner_command(368 kind, standalone_executable_cmd369 ):370 runners_registry[kind] = standalone_executable_cmd371 return standalone_executable_cmd372 # attempt to find Python module files that are named after the373 # runner convention within the avocado.plugins.runners namespace dir.374 # Looking for the file only avoids an attempt to load the module375 # and should be a lot faster376 module_name = kind.replace("-", "_")377 if Runnable._module_exists(module_name):378 full_module_name = f"avocado.plugins.runners.{module_name}"379 candidate_cmd = [sys.executable, "-m", full_module_name]380 if Runnable.is_kind_supported_by_runner_command(381 kind, candidate_cmd, env=env382 ):383 runners_registry[kind] = candidate_cmd384 return candidate_cmd385 # look for the runner commands implemented in the base nrunner module386 candidate_cmd = [sys.executable, "-m", "avocado.core.nrunner"]387 if Runnable.is_kind_supported_by_runner_command(kind, candidate_cmd, env=env):388 runners_registry[kind] = candidate_cmd389 return candidate_cmd390 # exhausted probes, let's save the negative on the cache and avoid391 # future similar problems392 runners_registry[kind] = False393 def runner_command(self, runners_registry=None):394 """Selects a runner command based on the runner.395 And when finding a suitable runner, keeps found runners in registry.396 This utility function will look at the given task and try to find397 a matching runner. The matching runner probe results are kept in398 a registry (that is modified by this function) so that further399 executions take advantage of previous probes.400 This is related to the :data:`SpawnMethod.STANDALONE_EXECUTABLE`401 :param runners_registry: a registry with previously found (and not...
test_nrunner.py
Source:test_nrunner.py
...364 def test_is_task_kind_supported(self):365 cmd = ['sh', '-c',366 'test $0 = capabilities && '367 'echo -n {\\"runnables\\": [\\"mykind\\"]}']368 self.assertTrue(self.runnable.is_kind_supported_by_runner_command(cmd))369 def test_is_task_kind_supported_other_kind(self):370 cmd = ['sh', '-c',371 'test $0 = capabilities && '372 'echo -n {\\"runnables\\": [\\"otherkind\\"]}']373 self.assertFalse(self.runnable.is_kind_supported_by_runner_command(cmd))374 def test_is_task_kind_supported_no_output(self):375 cmd = ['sh', '-c', 'echo -n ""']376 self.assertFalse(self.runnable.is_kind_supported_by_runner_command(cmd))377class PickRunner(unittest.TestCase):378 def setUp(self):379 self.runnable = nrunner.Runnable('lets-image-a-kind',380 'test_pick_runner_command')381 def test_pick_runner_command(self):382 runner = ['avocado-runner-lets-image-a-kind']383 known = {'lets-image-a-kind': runner}384 self.assertEqual(self.runnable.pick_runner_command(known), runner)385 def test_pick_runner_command_empty(self):386 self.assertFalse(self.runnable.pick_runner_command({}))387if __name__ == '__main__':...
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!!