Best Python code snippet using lisa_python
environment.py
Source:environment.py  
...237            remove_handler(self._log_handler, self.log)238            self._log_handler.close()239    def close(self) -> None:240        self.nodes.close()241    def create_node_from_exists(242        self,243        node_runbook: schema.Node,244    ) -> Node:245        node = Node.create(246            index=len(self.nodes),247            runbook=node_runbook,248            base_part_path=self.environment_part_path,249            parent_logger=self.log,250        )251        self.nodes.append(node)252        return node253    def create_node_from_requirement(254        self,255        node_requirement: schema.NodeSpace,256    ) -> Node:257        min_requirement = cast(258            schema.Capability,259            node_requirement.generate_min_capability(node_requirement),260        )261        assert isinstance(min_requirement.node_count, int), (262            f"must be int after generate_min_capability, "263            f"actual: {min_requirement.node_count}"264        )265        # node count should be expanded in platform already266        assert min_requirement.node_count == 1, f"actual: {min_requirement.node_count}"267        mock_runbook = schema.RemoteNode(268            type=constants.ENVIRONMENTS_NODES_REMOTE,269            capability=min_requirement,270            is_default=node_requirement.is_default,271        )272        node = Node.create(273            index=len(self.nodes),274            runbook=mock_runbook,275            base_part_path=self.environment_part_path,276            parent_logger=self.log,277        )278        self.nodes.append(node)279        return node280    def get_information(self) -> Dict[str, str]:281        final_information: Dict[str, str] = {}282        informations: List[283            Dict[str, str]284        ] = plugin_manager.hook.get_environment_information(environment=self)285        # reverse it, since it's FILO order,286        # try basic earlier, and they are allowed to be overwritten287        informations.reverse()288        for current_information in informations:289            final_information.update(current_information)290        return final_information291    def mark_dirty(self) -> None:292        self.log.debug("mark environment to dirty")293        self._is_dirty = True294    def _initialize(self, *args: Any, **kwargs: Any) -> None:295        if self.status != EnvironmentStatus.Deployed:296            raise LisaException("environment is not deployed, cannot be initialized")297        if not hasattr(self, "_log_handler"):298            self._log_handler = create_file_handler(299                self.log_path / "environment.log", self.log300            )301        self.nodes.initialize()302        self.status = EnvironmentStatus.Connected303    def _reset(self) -> None:304        self.nodes = Nodes()305        self.runbook.reload_requirements()306        self.is_new = True307        if not self.runbook.nodes_requirement and not self.runbook.nodes:308            raise LisaException("not found any node or requirement in environment")309        has_default_node = False310        for node_runbook in self.runbook.nodes:311            self.create_node_from_exists(312                node_runbook=node_runbook,313            )314            has_default_node = self._validate_single_default(315                has_default_node, node_runbook.is_default316            )317        if self._retries > 0:318            # provide an unique id.319            self.id = f"{self._raw_id}-{self._retries}"320        self.remove_context()321        self._retries += 1322    def _validate_single_default(323        self, has_default: bool, is_default: Optional[bool]324    ) -> bool:325        if is_default:...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!!
