Best Python code snippet using autotest_python
scheduler.py
Source:scheduler.py
...31 for cluster in self.drone_cluster:32 for drone in cluster:33 yield drone34 def register_drone(self, drone: Drone):35 self._add_drone(drone)36 def unregister_drone(self, drone: Drone):37 for cluster in self.drone_cluster:38 try:39 cluster.remove(drone)40 except ValueError:41 pass42 else:43 if len(cluster) == 0:44 self.drone_cluster.remove(cluster)45 def _add_drone(self, drone: Drone, drone_resources: Dict = None):46 minimum_distance_cluster = None47 distance = float("Inf")48 if len(self.drone_cluster) > 0:49 for cluster in self.drone_cluster:50 current_distance = 051 for key in {*cluster[0].pool_resources, *drone.pool_resources}:52 if drone_resources:53 current_distance += abs(54 cluster[0].theoretical_available_resources.get(key, 0)55 - drone_resources.get(key, 0)56 )57 else:58 current_distance += abs(59 cluster[0].theoretical_available_resources.get(key, 0)60 - drone.theoretical_available_resources.get(key, 0)61 )62 if current_distance < distance:63 minimum_distance_cluster = cluster64 distance = current_distance65 if distance < 1:66 minimum_distance_cluster.append(drone)67 else:68 self.drone_cluster.append([drone])69 else:70 self.drone_cluster.append([drone])71 def update_drone(self, drone: Drone):72 self.unregister_drone(drone)73 self._add_drone(drone)74 async def run(self):75 async with Scope() as scope:76 scope.do(self._collect_jobs())77 async for _ in interval(self.interval):78 for job in self.job_queue.copy():79 best_match = self._schedule_job(job)80 if best_match:81 await best_match.schedule_job(job)82 self.job_queue.remove(job)83 await sampling_required.put(self.job_queue)84 self.unregister_drone(best_match)85 left_resources = best_match.theoretical_available_resources86 left_resources = {87 key: value - job.resources.get(key, 0)88 for key, value in left_resources.items()89 }90 self._add_drone(best_match, left_resources)91 if (92 not self._collecting93 and not self.job_queue94 and self._processing.levels.jobs == 095 ):96 break97 await sampling_required.put(self)98 async def _collect_jobs(self):99 async for job in self._stream_queue:100 self.job_queue.append(job)101 await self._processing.increase(jobs=1)102 # TODO: logging happens with each job103 await sampling_required.put(self.job_queue)104 self._collecting = False...
site_drone_manager.py
Source:site_drone_manager.py
...43 """44 logging.info('killing %s', process)45 drone = self._get_drone_for_process(process)46 drone.queue_kill_process(process)47 def _add_drone(self, hostname):48 """49 Forked from drone_manager.py50 Catches AutoservRunError if the drone fails initialization and does not51 add it to the list of usable drones.52 @param hostname: Hostname of the drone we are trying to add.53 """54 logging.info('Adding drone %s' % hostname)55 drone = drones.get_drone(hostname)56 if drone:57 try:58 drone.call('initialize', self.absolute_path(''))59 except error.AutoservRunError as e:60 logging.error('Failed to initialize drone %s with error: %s',61 hostname, e)...
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!!