How to use _get_tool_key method in lisa

Best Python code snippet using lisa_python

executable.py

Source: executable.py Github

copy

Full Screen

...473 """474 Create a new tool with given arguments. Call it only when a new tool is475 needed. Otherwise, call the get method.476 """477 tool_key = self._get_tool_key(tool_type)478 tool = self._cache.get(tool_key, None)479 if tool:480 del self._cache[tool_key]481 return self.get(tool_type, *args, **kwargs)482 def get(483 self,484 tool_type: Union[Type[T], CustomScriptBuilder, str],485 *args: Any,486 **kwargs: Any,487 ) -> T:488 """489 return a typed subclass of tool or script builder.490 for example,491 echo_tool = node.tools[Echo]492 echo_tool.run("hello")493 """494 if tool_type is CustomScriptBuilder:495 raise LisaException(496 "CustomScriptBuilder should call build to create a script instance"497 )498 tool_key = self._get_tool_key(tool_type)499 tool = self._cache.get(tool_key)500 if tool is None:501 # the Tool is not installed on current node, try to install it.502 tool_log = get_logger("tool", tool_key, self._node.log)503 tool_log.debug(f"initializing tool [{tool_key}]")504 if isinstance(tool_type, CustomScriptBuilder):505 tool = tool_type.build(self._node)506 elif isinstance(tool_type, str):507 raise LisaException(508 f"{tool_type} cannot be found. "509 f"short usage need to get with type before get with name."510 )511 else:512 cast_tool_type = cast(Type[Tool], tool_type)513 tool = cast_tool_type.create(self._node, *args, **kwargs)514 tool.initialize()515 if not tool.exists:516 tool_log.debug(f"'{tool.name}' not installed")517 if tool.can_install:518 tool_log.debug(f"{tool.name} is installing")519 timer = create_timer()520 is_success = tool.install()521 if not is_success:522 raise LisaException(523 f"install '{tool.name}' failed. After installed, "524 f"it cannot be detected."525 )526 tool_log.debug(f"installed in {timer}")527 else:528 raise LisaException(529 f"cannot find [{tool.name}] on [{self._node.name}], "530 f"{self._node.os.__class__.__name__}, "531 f"Remote({self._node.is_remote}) "532 f"and installation of [{tool.name}] isn't enabled in lisa."533 )534 else:535 tool_log.debug("installed already")536 self._cache[tool_key] = tool537 return cast(T, tool)538 def _get_tool_key(self, tool_type: Union[type, CustomScriptBuilder, str]) -> str:539 if isinstance(tool_type, CustomScriptBuilder):540 tool_key = tool_type.name541 elif isinstance(tool_type, str):542 tool_key = tool_type.lower()543 else:544 tool_key = tool_type.__name__.lower()...

Full Screen

Full Screen

Blogs

Check out the latest blogs from LambdaTest on this topic:

How To Handle Multiple Windows In Selenium Python

Automating testing is a crucial step in the development pipeline of a software product. In an agile development environment, where there is continuous development, deployment, and maintenance of software products, automation testing ensures that the end software products delivered are error-free.

Joomla Testing Guide: How To Test Joomla Websites

Before we discuss the Joomla testing, let us understand the fundamentals of Joomla and how this content management system allows you to create and maintain web-based applications or websites without having to write and implement complex coding requirements.

Starting & growing a QA Testing career

The QA testing career includes following an often long, winding road filled with fun, chaos, challenges, and complexity. Financially, the spectrum is broad and influenced by location, company type, company size, and the QA tester’s experience level. QA testing is a profitable, enjoyable, and thriving career choice.

The Art of Testing the Untestable

It’s strange to hear someone declare, “This can’t be tested.” In reply, I contend that everything can be tested. However, one must be pleased with the outcome of testing, which might include failure, financial loss, or personal injury. Could anything be tested when a claim is made with this understanding?

How To Create Custom Menus with CSS Select

When it comes to UI components, there are two versatile methods that we can use to build it for your website: either we can use prebuilt components from a well-known library or framework, or we can develop our UI components from scratch.

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 lisa 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