Best Python code snippet using SeleniumBase
cliente.py
Source:cliente.py
1from threading import Thread2from time import sleep3from random import randint4import init5from atracao import *6from equipamentos import *7class Cliente(Thread):8 '''9 Os clientes (frequentadores do parque) realizam as seguintes ações:10 - Vestir os equipamentos de proteção (macacão, luvas, capacete)11 - Ir a uma das atrações:12 - Pista de patinação no gelo:13 - Pegar patins14 - Aguardar vaga na pista15 - Patinar16 - Teleférico:17 - Pagar uma cadeira livre18 - Subir a montanha19 - Ir para uma das pistas ou permanecer no teleférico20 - Pista de snowboad:21 - Pegar uma prancha22 - Aguardar vaga23 - Descer a montanha24 - Devolver equipamento, caso deixe a atração25 - Pista de esqui:26 - Pegar esquis27 - Aguardar vaga28 - Descer a montanha29 - Devolver equipamento, caso deixe a atração30 - Pistas de trenó (skeleton):31 - Pegar trenó32 - Aguardar pista livre33 - Descer a montanha34 - Devolver o equipamento35 - Pistas de bobsled:36 - Formar dupla37 - Pegar bobsled38 - Aguardar pista livre 39 - Descer a montanha40 - Devolver o equipamento41 - Decidir aleatoriamente se permanece, se vai para outra atração ou vai embora42 Cada uma dessas ações corresponde a um método do cliente. A sua responsabilidade 43 é desenvolver os comportamentos dentro dos métodos do cliente de modo que ele se44 comporte conforme a especificação contida no Moodle.45 Esses métodos são chamados no método run() da classe Cliente.46 47 Observação: Comente no código qual o objetivo de uma dada operação, 48 ou conjunto de operações, para facilitar a correção do trabalho. 49 '''50 # Construtor do cliente51 # blah blah ALTERADO em 5/03 (correção do comentário)52 def __init__(self, id):53 self.id = id54 super().__init__(name=("Cliente " + str(id)))55 # NOVO 56 # Função que imprime mensagens de log57 def log(self, mensagem):58 espacos = (16 - len(self.name)) * ' '59 print('['+ self.name + '] ' + espacos + mensagem + '\n', end='')60 # Representação do cliente nas mensagens de log61 def __repr__(self):62 return self.name63 # Comportamento do cliente64 def run(self):65 '''66 NÃO ALTERE A ORDEM DAS CHAMADAS ABAIXO.67 '''68 self.log("Entrou no Winter Park.")69 self.pegar_equip_protecao()70 while True:71 if randint(1,3) == 1:72 # Vai para pista de patinação73 self.pegar_patins()74 self.aguardar_lugar_pista()75 while True:76 self.patinar()77 if randint(1,3) == 1:78 break79 self.devolver_patins()80 else:81 # Pega o teleférico para subir a montanha82 self.pegar_teleferico()83 self.aguardar_subida()84 if randint(1,5) == 1:85 # Desce de teleférico86 self.aguardar_descida()87 self.sair_teleferico()88 else:89 self.sair_teleferico()90 if randint(1,2) == 1:91 # Vai para o lado sul - esqui e snowboard92 if randint(1,2) == 1:93 # Esquiar94 self.pegar_esquis()95 while True:96 self.aguardar_lugar_montanha_sul() 97 self.descer_esquiando() 98 if randint(1,2) == 1:99 self.pegar_teleferico()100 self.aguardar_subida()101 self.sair_teleferico() # ALTERADO 2/03 102 else:103 self.devolver_esquis()104 break105 else:106 # Sandboard107 self.pegar_snowboard()108 while True:109 self.aguardar_lugar_montanha_sul() 110 self.descer_snowboard() 111 if randint(1,2) == 1:112 self.pegar_teleferico()113 self.aguardar_subida()114 self.sair_teleferico() # ALTERADO 2/03 115 else:116 self.devolver_snowboard()117 break 118 else:119 # Vai para o lado norte - trenó e bobsled120 if randint(1,3) == 1:121 # Bobsled122 while True: # ALTERADO 5/03123 self.formar_dupla() # ALTERADO 5/03124 self.pegar_bobsled() # ALTERADO 5/03125 self.aguardar_pista_bobsled() 126 self.descer_bobsled() 127 self.devolver_bobsled()128 if randint(1,2) == 1:129 self.pegar_teleferico()130 self.aguardar_subida()131 self.sair_teleferico() # ALTERADO 2/03 132 else:133 break 134 else:135 # Trenó 136 while True: # ALTERADO 5/03137 self.pegar_treno() # ALTERADO 5/03138 self.aguardar_pista_treno() 139 self.descer_treno() 140 self.devolver_treno()141 if randint(1,2) == 1:142 self.pegar_teleferico()143 self.aguardar_subida()144 self.sair_teleferico() # ALTERADO 2/03 145 else:146 break 147 if randint(1,5) == 1: 148 # Devolve o kit de equipamentos de proteção149 self.devolver_equip_protecao()150 # Vai embora151 self.log("Saiu do Winter Park.")152 return153 # Simula o tempo de uso de uma atração154 def tempo_atracao(self):155 sleep(randint(init.tempo_atracao_min, init.tempo_atracao_max) * init.unidade_de_tempo)156 157 # Cliente pega um kit com os equipamentos de proteção158 def pegar_equip_protecao(self):159 '''160 IMPLEMENTE AQUI:161 O cliente pega um kit com os equipamentos de proteção.162 '''163 self.log("Pegou um kit com equipamentos de proteção.")164 165 # Cliente devolve um kit com os equipamentos de proteção166 def devolver_equip_protecao(self):167 '''168 IMPLEMENTE AQUI:169 O cliente devolve um kit com os equipamentos de proteção.170 '''171 self.log("Devolveu um kit com equipamentos de proteção.")172 173 # Cliente pega um par de patins para usar a pista de patinação174 def pegar_patins(self):175 '''176 IMPLEMENTE AQUI:177 O cliente pega um par de patins para patinar no gelo.178 '''179 self.log("Pegou um par de patins.")180 # Cliente pega uma prancha de snowboard181 def patinar(self):182 self.log("Está patinando.")183 self.tempo_atracao()184 # Cliente devolver os patins que estava usando185 def devolver_patins(self):186 '''187 IMPLEMENTE AQUI:188 O cliente devolve os patins que usou na pista de patinação.189 '''190 self.log("Devolveu um par de patins.")191 # Cliente aguarda que haja lugar na pista de patinação 192 def aguardar_lugar_pista(self):193 '''194 IMPLEMENTE AQUI:195 O cliente deve aguardar que haja uma vaga para entrar na pista de patinação.196 '''197 self.log("Entrou na pista de patinação.")198 # Cliente aguarda um lugar no teleférico199 def pegar_teleferico(self):200 '''201 IMPLEMENTE AQUI:202 O cliente deve aguardar que haja uma cadeira vaga para andar no teleférico.203 '''204 self.log("Pegou cadeira no teleférico.")205 # Cliente deve aguardar a subida do teleférico206 def aguardar_subida(self):207 self.tempo_atracao() 208 self.log("Chegou ao topo da montanha de teleférico.")209 # Cliente deve aguardar a descida do teleférico 210 def aguardar_descida(self):211 self.tempo_atracao() 212 self.log("Desceu a montanha de teleférico.")213 # Cliente libera seu lugar no teleférico214 def sair_teleferico(self):215 '''216 IMPLEMENTE AQUI:217 O cliente libera a cadeira que usou para andar no teleférico.218 '''219 self.log("Liberou uma cadeira no teleférico.")220 221 # Cliente pega esquis222 def pegar_esquis(self):223 '''224 IMPLEMENTE AQUI:225 O cliente pega um par de esquis para usar.226 ''' 227 self.log("Pegou esquis.")228 # Cliente aguarda para poder esquiar na montanha229 def aguardar_lugar_montanha_sul(self):230 '''231 IMPLEMENTE AQUI:232 Aguardar que haja uma vaga para esquiar.233 ''' 234 self.log("Conseguiu lugar na montanha sul.")235 236 # Cliente desce a montanha esquiando237 def descer_esquiando(self):238 self.log("Começa a descer a montanha esquiando.")239 self.tempo_atracao()240 self.log("Terminou de descer a montanha esquiando.")241 # Cliente devolve os esquis242 def devolver_esquis(self):243 '''244 IMPLEMENTE AQUI:245 O cliente pega um par de esquis para usar.246 ''' 247 self.log("Devolveu os esquis.")248 249 # Cliente pega uma prancha de snowboard250 def pegar_snowboard(self):251 '''252 IMPLEMENTE AQUI:253 O cliente pega uma prancha de snowboard.254 '''255 self.log("Pegou um snowboard.")256 257 # Cliente desce a montanha com uma prancha de snowboard258 def descer_snowboard(self):259 self.log("Começou a descer a pista de snowboard.") 260 self.tempo_atracao()261 self.log("Desceu a pista de snowboard.")262 # Cliente devolve uma prancha de snowboard263 def devolver_snowboard(self):264 '''265 IMPLEMENTE AQUI:266 O cliente devolve uma prancha de snowboard.267 '''268 self.log("Devolveu um snowboard.")269 # Cliente aguarda formação da dupla270 def formar_dupla(self):271 '''272 IMPLEMENTE AQUI:273 O cliente aguarda que outro cliente forme uma dupla com ele.274 '''275 self.log("Formou uma dupla para descer a montanha no bobsled.")276 277 # Cliente aguarda um bobsled livre para descer a montanha278 def pegar_bobsled(self):279 '''280 IMPLEMENTE AQUI:281 O cliente aguarda que haja um bobsled livre para descer a montanha.282 '''283 self.log("Pegou um bobsled.")284 # Cliente aguarda uma pista de bobsled livre para descer a montanha285 def aguardar_pista_bobsled(self):286 self.log("Aguarda por uma pista de bobsled.")287 '''288 IMPLEMENTE AQUI:289 O cliente aguarda que haja uma pista de bobsled livre para descer a montanha.290 '''291 self.log("Conseguiu uma pista de bobsled.")292 # Cliente desce a montanha de bobsled293 def descer_bobsled(self):294 self.log("Começou a descer a pista de bobsled.")295 '''296 IMPLEMENTE AQUI:297 O cliente desce a pista de bobsled.298 '''299 self.log("Terminou de descer a pista de bobsled.") 300 301 # Cliente devolve o bobsled que usou para descer a montanha302 def devolver_bobsled(self):303 '''304 IMPLEMENTE AQUI:305 O cliente devolveu o bobsled usado para descer a montanha.306 '''307 self.log("Devolveu um bobsled.")308 # Cliente aguarda um trenó livre para descer a montanha309 def pegar_treno(self):310 '''311 IMPLEMENTE AQUI:312 O cliente aguarda que haja um trenó livre para descer a montanha.313 '''314 self.log("Pegou um trenó.")315 # Cliente aguarda uma pista de trenó livre para descer a montanha316 def aguardar_pista_treno(self):317 self.log("Aguarda por uma pista de trenó.")318 '''319 IMPLEMENTE AQUI:320 O cliente aguarda que haja uma pista de trenó livre para descer a montanha.321 '''322 self.log("Conseguiu uma pista de trenó.")323 # Cliente desce a montanha de trenó324 def descer_treno(self):325 self.log("Começou a descer a pista de trenó.")326 self.tempo_atracao()327 self.log("Terminou de descer a pista de trenó.") 328 329 # Cliente devolve o trenó que usou para descer a montanha330 def devolver_treno(self):331 '''332 IMPLEMENTE AQUI:333 O cliente devolveu o trenó usado para descer a montanha.334 '''335 self.log("Devolveu um trenó.")...
proyecto2.py
Source:proyecto2.py
1# -*- coding: utf-8 -*-2# Sistemas Operativos 3# Rene Vazquez Peñaloza 456import random7import threading8import time910#En esta variable se define en numero de clientes que puede haber conectados al servidor11UsuariosConectados=212#Se definen los multiplex que nos permiten controlar el flujo en cada direccion13multiplexConsulta = threading.Semaphore(UsuariosConectados)14multiplexGuardar = threading.Semaphore(UsuariosConectados)1516def esSeguroConsultar():17 if (numUsuariosGuardando - (numUsuariosConsultando + 1)) == 0:18 return False19 return True2021def esSeguroGuardar():22 if (numUsuariosConsultando - (numUsuariosGuardando + 1)) == 0:23 return False24 return True2526#Estas variables nos permiten decidir si es seguro consultar o guardar. 27numUsuariosConsultando = 028numUsuariosGuardando = 029mutexAGuardar = threading.Semaphore(0)30mutexAConsulta = threading.Semaphore(0)31sepuedeConsultar = esSeguroConsultar()32sepuedeGuardar = esSeguroGuardar()3334#Con 1 Consulta con 0 Guarda 35def elegirAccion():36 if random.random() < 0.5:37 return 138 else:39 return 04041AConsulta=set()42AGuardar = set()43Lectura = set()44class Usuario():45 46 def __init__(self, nombre):47 global numUsuariosGuardando48 global numUsuariosConsultando49 5051 self.nombre = nombre52 self.accionActual = -153 #print(self.nombre + " está en espera")54 self.isWaiting = True55 Lectura.add(self)5657 def __str__(self):58 accion = "de consulta" if self.accionActual == 1 else "de guardar"59 return self.nombre + " está realizando " + accion60 6162 def eventos(self):63 global numUsuariosGuardando64 global numUsuariosConsultando65 global sepuedeGuardar66 global sepuedeConsultar67 """mutexAGuardar.acquire()68 sepuedeConsultar = esSeguroConsultar()69 mutexAGuardar.release()70 mutexAGuardar.acquire()71 sepuedeGuardar = esSeguroGuardar()72 mutexAGuardar.release()"""7374 itera = 175 while(True):76 nuevaAccion = elegirAccion()77 if nuevaAccion == self.accionActual:78 tmp = "de sentido del reloj" if self.accionActual == 1 else "contra reloj"79 80 continue81 if self.isWaiting:82 Lectura.remove(self)83 if nuevaAccion == 1 and itera == 1 and sepuedeConsultar:84 #Quiere decir que la accion que realizaba era consulta85 multiplexConsulta.acquire()86 AConsulta.add(self)87 self.accionActual = 188 self.isWaiting = False89 numUsuariosConsultando+=190 #print(self)91 continue 92 elif nuevaAccion == 0 and itera == 1 and sepuedeGuardar:93 multiplexGuardar.acquire()94 AGuardar.add(self)95 self.accionActual = 096 self.isWaiting = False97 numUsuariosGuardando+=198 #print(self)99 continue100101 if nuevaAccion == 1:102 103 multiplexGuardar.release()104 AGuardar.remove(self)105106 elif nuevaAccion == 0:107 multiplexConsulta.release()108 AConsulta.remove(self) 109110111 if nuevaAccion == 1 and sepuedeConsultar:112 113 multiplexConsulta.acquire()114 AConsulta.add(self)115 self.accionActual = 1116 self.isWaiting = False117 numUsuariosConsultando+=1118 numUsuariosGuardando -= 1119 #print(self)120121 elif nuevaAccion == 0 and sepuedeGuardar:122 multiplexGuardar.acquire()123 AGuardar.add(self)124 self.accionActual = 0125 self.isWaiting = False126 numUsuariosGuardando+=1127 numUsuariosConsultando -= 1128 #print(self)129 else:130 Lectura.add(self)131 self.isWaiting = True132 133 134 elif not self.isWaiting:135 Lectura.add(self)136 self.isWaiting = True137 138 itera += 1139 time.sleep(5)140 141 142def getStatus():143 while(True):144 string="************************************\n"145 string += "Usuarios consultando[ " + "*"*len(AConsulta)+" ]\n"146 for Usuario in AConsulta:147 string += " ** "+Usuario.nombre+"\n"148 string += "Usuarios guardando[ " + "*"*len(AGuardar)+" ]\n\n"149 for Usuario in AGuardar:150 string += " ** "+Usuario.nombre+"\n"151 time.sleep(5)152 print(string)153154def main():155 rene = Usuario("Rene")156 adan = Usuario("Adan")157 miguel = Usuario("Miguel")158 gabriel = Usuario("Gabriel")159 rafael = Usuario("Rafael")160 edith = Usuario("Edith")161 cliente=[rene, adan, miguel, gabriel, rafael, edith]162 print("*"*30)163 hilos = []164 hilos.append(threading.Thread(target=getStatus))165166 for usuario in cliente:167 hilo = threading.Thread(target=usuario.eventos)168 hilos.append(hilo)169170 for hilo in hilos:171 hilo.start()172173if __name__ =="__main__":
...
productoResource.py
Source:productoResource.py
1from flask import request2from flask_restful import Resource3import json4from models.variante import Variante5from models.foto import Foto6from models.producto import Producto7from schemas.productoSchema import productosSchema,productoSchema8class ProductoListResource(Resource):9 def get(self):10 productos = Producto.get_all_activos()11 12 return productosSchema.dump(productos)13 def post(self):14 15 form_data=request.form16 fotos=request.files17 producto = Producto()18 if form_data['nombreProducto']:19 producto.nombre=form_data['nombreProducto']20 if form_data['alto']:21 producto.alto=form_data['alto']22 if form_data['ancho']:23 producto.ancho=form_data['ancho']24 if form_data['largo']:25 producto.largo=form_data['largo']26 if form_data['precio']:27 producto.precio=form_data['precio']28 if form_data['capacidad']:29 producto.capacidad=form_data['capacidad']30 if form_data['descripcion']:31 producto.descripcion=form_data['descripcion']32 producto.activo='activo'33 if form_data['idSubCategoria']:34 producto.idSubCategoria=form_data['idSubCategoria']35 if form_data['idCategoria']:36 producto.idCategoria=form_data['idCategoria']37 producto.save(is_new=True)38 #Variantes39 if form_data['variantes']:40 listaVariantes= form_data['variantes'].split(",")41 for variantes in listaVariantes:42 variante=Variante()43 variante.color=variantes44 variante.idProducto=producto.id45 variante.save(is_new=True)46 #Fotos47 if fotos:48 contador=149 for foto in fotos:50 archivoAguardar= request.files[foto]51 foto=Foto()52 foto.posicion=contador53 foto.idProducto=producto.id54 contador+=155 foto.save(is_new=True)56 foto.guardarFoto(archivoAguardar, foto.id)57 58 return productoSchema.dump(producto), 20159class ProductoResource(Resource):60 61 def get(self, productoId):62 producto = Producto.get_by_id(productoId)63 return productoSchema.dump(producto)64 def patch(self, productoId):65 form_data=request.form66 fotos=request.files67 68 producto = Producto.get_by_id(productoId)69 if form_data['nombreProducto']:70 producto.nombre=form_data['nombreProducto']71 if form_data['alto']:72 producto.alto=form_data['alto']73 if form_data['ancho']:74 producto.ancho=form_data['ancho']75 if form_data['largo']:76 producto.largo=form_data['largo']77 if form_data['precio']:78 producto.precio=form_data['precio']79 if form_data['capacidad']:80 producto.capacidad=form_data['capacidad']81 if form_data['descripcion']:82 producto.descripcion=form_data['descripcion']83 producto.activo='activo'84 if form_data['idSubCategoria']:85 producto.idSubCategoria=form_data['idSubCategoria']86 if form_data['idCategoria']:87 producto.idCategoria=form_data['idCategoria']88 producto.save(is_new=False)89 #Variantes90 if form_data['variantes']:91 Variante.eliminarVariantePorIdProducto(productoId)92 listaVariantes= form_data['variantes'].split(",")93 for variantes in listaVariantes:94 variante=Variante()95 variante.color=variantes96 variante.idProducto=producto.id97 variante.save(is_new=True)98 #Fotos99 fotosNOborrar=[]100 if fotos:101 for foto in fotos:102 fotoAguardar=Foto()103 archivoAguardar= request.files[foto]104 fotoAguardar.idProducto=producto.id105 fotoAguardar.posicion=archivoAguardar.name106 fotoAguardar.save(is_new=True)107 fotosNOborrar.append(fotoAguardar.guardarFoto(archivoAguardar, fotoAguardar.id))108 109 data= form_data['fotosExistentes']110 fotosExistentes = json.loads(data)111 if len(fotosExistentes)!=0:112 for elemento in fotosExistentes:113 if elemento['idImagen']!='' or elemento['idImagen']!=None:114 fotoNOborrar=Foto.get_by_id(elemento['idImagen'])115 fotoNOborrar.posicion=elemento['posicion']116 fotoNOborrar.save(is_new=False)117 fotosNOborrar.append(fotoNOborrar)118 Foto.eliminarFotosPorIdProducto(productoId,fotosNOborrar)119 return productoSchema.dump(producto), 201120 121 def delete(self, productoId):122 producto = Producto.get_by_id(productoId)123 producto.activo="inactivo"124 producto.save(is_new=False)...
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!!