How to use path_app method in Airtest

Best Python code snippet using Airtest

config.py

Source:config.py Github

copy

Full Screen

1# -*- coding: utf-8 -*-2"""3Created on Sat Dec 19 06:56:38 20204@author: C481425"""6import os7contenido=os.listdir("G://")8for i in contenido:9 if i.startswith('Unidades'):10 path_g = i11PATH_APP = "G://" + path_g12PATH_CONFIGURACION_APP = PATH_APP + "/APP-KPIs/CONFIGURACION/"13PATH_INFORME_DIARIO = PATH_APP + "/APP-KPIs/INFORME-DIARIO/"14PATH_COSTES_CECO = PATH_APP + "/APP-KPIs/COSTES/CECO/"15PATH_COSTES_CONFIGURACION = PATH_APP + "/APP-KPIs/COSTES/CONFIGURACION/"16PATH_COSTES_ORDEN = PATH_APP + "/APP-KPIs/COSTES/ORDEN/"17PATH_COSTES_OUTPUT = PATH_APP + "/APP-KPIs/COSTES/OUTPUT/"18PATH_COSTES_OUTPUT_KPISITES = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/COSTES/"19PATH_COSTES_PEP = PATH_APP + "/APP-KPIs/COSTES/PEP/"20PATH_COSTES_GRAFOS = PATH_APP + "/APP-KPIs/COSTES/GRAFOS/"21PATH_REPUESTOS_MAXR = PATH_APP + "/APP-KPIs/REPUESTOS/MAXR/"22PATH_REPUESTOS_OUTPUT = PATH_APP + "/APP-KPIs/REPUESTOS/OUTPUT/"23PATH_REPUESTOS_OUTPUT_KPISITES = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/REPUESTOS/"24PATH_EFICIENCIA_HOT = PATH_APP + "/APP-KPIs/EFICIENCIA-HISTORICO-OT/"25PATH_TIEMPO_PRODUCCION = PATH_APP + "/APP-KPIs/TIEMPO-PRODUCCION/"26PATH_KPI_SITES_HOT = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/HISTORICO OTs/"27PATH_KPI_SITES_TPO_PRODUCCION = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/TIEMPOS PRODUCCION/"28PATH_KPI_SITES_ADH_MTO = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/ADHERENCIA MP/"29PATH_KPI_SITES_ADH_MC = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/ADHERENCIA MC/"30PATH_KPI_SITES_RATIO_MP_MC = PATH_APP + "/ODRMP - MANTENIMIENTO PRODUCTIVO/11 - KPI-SITES/RATIO MP_MC/"31PATH_ADHERENCIA_MP = PATH_APP + "/APP-KPIs/ADHERENCIA-MP/"32PATH_ADHERENCIA_MC = PATH_APP + "/APP-KPIs/ADHERENCIA-MC/"33PATH_RATIO_MP_MC = PATH_APP + "/APP-KPIs/RATIO MP_MC/"34CABECERA_TXT_HOT = "| Cl.|T.Trabajo|Orden |Ubicación técnica |Denominación objeto |Equipo |Fe.entrada|Inic.extr.|Fin extr. |F.Cierre T|Texto breve |Status sistema |Status usuario |Pl.MantPrv | Sum CPLA|Sum PSUP| Sum PMAT| Suma PAIR| Sum ...|Tiempo Res|H. parada| Tiem Tota|Trbjo real|Fallo |Problema |Cód. cat.|Ce.coste|Denom.ubic.técnica |Fecha ref.|F.Cier Com|Inicio |Inic.real |Fin real |Liber. |Fin progr.|Fin real|CGH|GrpHRuta|Hist. dsd |H.Cier Com|HoraCierrT|HoraFinExt|Fin (hora)|Hora inic.|HoraRef |H. inicio|Hora inic.|In.real |Hr. crea|Inic.prog.|Pos.PM|"35CABECERA_TXT_GRAFOS ="|ceco|num_empleado|nombre_empleado|fecha|denominacion_operacion|denominacion_grafo|denominacion_pep|horas|grafo|pep|"36 37# Parametro para seleccionar tipo de reporte Informe Diario38ID_ESTANDAR = 139ID_ABIERTAS = 240ID_ERRORES = 3 41 42PROGRAMAS = ['A320','A330','A350','A380','PINT','SAUX','EXPE']43STATUS_OT = ['CPLA','PMAT','PSUP','...','PAIR','CACL','CERR','SUPE','CTEC',\44 'KKMP','NLIQ','NOTP','LIBE','IMPR','DMNV','MOVM','RECH','NEJE']45FECHAS_HOT = {46 2019 :{47 '2019-Q1':{48 'DESDE':'01.01.2019',49 'HASTA':'31.03.2019'},50 '2019-Q2':{51 'DESDE':'01.04.2019',52 'HASTA':'30.06.2019'},53 '2019-Q3':{54 'DESDE':'01.07.2019',55 'HASTA':'30.09.2019'},56 '2019-Q4':{57 'DESDE':'01.10.2019',58 'HASTA':'31.12.2019'}},59 2020 :{60 '2020-Q1':{61 'DESDE':'01.01.2020',62 'HASTA':'31.03.2020'},63 '2020-Q2':{64 'DESDE':'01.04.2020',65 'HASTA':'30.06.2020'},66 '2020-Q3':{67 'DESDE':'01.07.2020',68 'HASTA':'30.09.2020'},69 '2020-Q4':{70 'DESDE':'01.10.2020',71 'HASTA':'31.12.2020'}},72 2021 :{73 '2021-Q1':{74 'DESDE':'01.01.2021',75 'HASTA':'31.03.2021'},76 '2021-Q2':{77 'DESDE':'01.04.2021',78 'HASTA':'30.06.2021'},79 '2021-Q3':{80 'DESDE':'01.07.2021',81 'HASTA':'30.09.2021'},82 '2021-Q4':{83 'DESDE':'01.10.2021',84 'HASTA':'31.12.2021'}},85 2022 :{86 '2022-Q1':{87 'DESDE':'01.01.2022',88 'HASTA':'31.03.2022'},89 '2022-Q2':{90 'DESDE':'01.04.2022',91 'HASTA':'30.06.2022'},92 '2022-Q3':{93 'DESDE':'01.07.2022',94 'HASTA':'30.09.2022'},95 '2022-Q4':{96 'DESDE':'01.10.2022',97 'HASTA':'31.12.2022'}} 98 }99NOMBRE_COLUMNAS_ZPM_HTO = {100 'Cl.':'clase_orden',101 'T.Trabajo':'tipo_trabajo',102 'Orden':'orden',103 'Ubicación técnica':'ubicacion_tecnica',104 'Denominación objeto':'denominacion_objeto',105 'Equipo':'equipo',106 'Fe.entrada':'fecha_entrada',107 'Inic.extr.':'fecha_inicio_extrema',108 'Fin extr.':'fecha_fin_extrema',109 'F.Cierre T':'fecha_cierre_tecnico',110 'Texto breve':'texto_breve',111 'Status sistema':'status_sistema',112 'Status usuario':'status_usuario',113 'Pl.MantPrv':'plan_mto_preventivo',114 'Sum CPLA':'sum_cpla',115 'Sum PSUP':'sum_psup',116 'Sum PMAT':'sum_pmat',117 'Suma PAIR':'sum_pair',118 'Sum ...':'tiempo_resolucion',119 'Tiempo Res':'tiempo_respuesta',120 'H. parada':'tiempo_parada',121 'Tiem Tota':'tiempo_total',122 'Trbjo real':'trabajo_real',123 'Fallo':'fallo',124 'Problema':'problema',125 'Cód. cat.':'cod_cat_fallo',126 'Ce.coste':'ceco',127 'Denom.ubic.técnica':'denominacion_ubicacion_tecnica',128 'Fecha ref.':'fecha_referencia',129 'F.Cier Com':'fecha_cierre_comercial',130 'Inicio':'fecha_inicio',131 'Inic.real':'fecha_inicio_real',132 'Fin real':'fecha_fin_real',133 'Liber.':'fecha_liberacion',134 'Fin progr.':'fecha_fin_programado',135 'Fin real.1':'hora_fin_real',136 'CGH':'contador_grupo_hruta',137 'GrpHRuta':'grphruta',138 'Hist. dsd':'fecha_historico_desde',139 'H.Cier Com':'hora_cierre_comercial',140 'HoraCierrT':'hora_cierre_tecnico',141 'HoraFinExt':'hora_fin_extrema',142 'Fin (hora)':'hora_fin_programacion',143 'Hora inic.':'hora_inicio_programacion',144 'HoraRef':'hora_referencia',145 'H. inicio':'hora_inicio',146 'Hora inic..1':'hora_inicio_extrema',147 'In.real':'hora_inicio_real',148 'Hr. crea':'hora_creacion',149 'Inic.prog.':'fecha_inicio_programado',150 'Pos.PM':'posicion_mantenimiento'}151# Plantilla HTML para INFORME DIARIO152HTML_ID={'CABECERA': """<!DOCTYPE html>153 <html>154 <head>155 <style>156 table, th, td {157 border: 1px solid black;158 border-collapse: collapse;159 }160 th {161 padding: 5px;162 text-align: center;163 }164 td { 165 padding: 5px 10px;166 text-align: center;167 }168 h2, img {169 font-size: 30px;170 text-align: center;171 display: inline-block;172 }173 @media print {174 @page {175 size:landscape;176 margin: 1;177 }178 }179 </style>180 </head>181 <body>182 <h2><img style="width: 10%"; src="{PATH_LOGO}AIRBUS_Blue.png"></img>ZPM_REPORT_MWO PUERTO REAL</h2>183 <h3>Informe {TIPO_REPORTE} Desde: {FECHA_INI} Hasta: {FECHA_FIN}</h3>184 <table style="width:100%">""",185 'TABLA' : """186 <tr>187 <td style="color:{COLOR_GENERAL}">{01}</td>188 <td style="color:{COLOR_GENERAL}">{02}</td>189 <td style="color:{COLOR_GENERAL}">{03}</td>190 <td rowspan="3", style="color:{COLOR_GENERAL}">{04}</td>191 <td colspan="2", style="color:{COLOR_GENERAL}">{05}</td>192 <td style="color:{COLOR_GENERAL}">{07}</td>193 <td style="color:{COLOR_GENERAL}">{08}</td>194 <td style="color:{COLOR_GENERAL}">{09}</td>195 <td style="color:{COLOR_GENERAL}">{010}</td>196 <td style="color:{COLOR_GENERAL}">{011}</td>197 </tr>198 <tr>199 <td rowspan="2", style="font-size: 30px; color:{COLOR_TIPO_TRABAJO}">{11}</td>200 <td rowspan="2", style="color:{COLOR_GENERAL}">{12}</td>201 <td rowspan="3", style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{13}</td> 202 <td style="color:{COLOR_GENERAL}">{15}</td>203 <td style="color:{COLOR_GENERAL}">{16}</td>204 <td rowspan="3", style="font-size: 30px; color:{COLOR_HORA_PARADA}; border-bottom: 4px solid #000">{17}</td>205 <td style="color:{COLOR_GENERAL}">{18}</td>206 <td style="color:{COLOR_GENERAL}">{19}</td>207 <td style="color:{COLOR_GENERAL}">{110}</td>208 <td style="color:{COLOR_GENERAL}">{111}</td>209 </tr>210 <tr>211 <td style="color:{COLOR_GENERAL}">{25}</td>212 <td style="color:{COLOR_GENERAL}">{26}</td>213 <td style="color:{COLOR_GENERAL}">{28}</td>214 <td style="color:{COLOR_GENERAL}">{29}</td>215 <td style="color:{COLOR_GENERAL}">{210}</td>216 <td style="color:{COLOR_GENERAL}">{211}</td>217 </tr>218 <tr>219 <td colspan="2", style="color:{COLOR_PROBLEMA}; border-bottom: 4px solid #000">{31}</td>220 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{34}</td>221 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{35}</td>222 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{36}</td>223 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{38}</td>224 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{39}</td>225 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{310}</td>226 <td style="border-bottom: 4px solid #000; color:{COLOR_GENERAL}">{311}</td>227 </tr>""",228 'PIE' : """229 </table> 230 </body>...

Full Screen

Full Screen

manage_base.py

Source:manage_base.py Github

copy

Full Screen

1"""2Файл для общих функций управления проекта3"""4import os.path5from os import environ6from typing import Type7from fastapi import FastAPI8from logsmal import logger9from sqlalchemy.exc import DatabaseError10from .database_pack.base import SQL11from .database_pack.model_logic import RawSqlModel12from .helpful import create_file13from .settings_logic import BaseSettings, mount_env14class BaseManage:15 """16 Функции для менеджера проекта17 """18 def __init__(self, app: FastAPI, settings_obj: Type[BaseSettings]):19 self.settings_obj = settings_obj20 self.app = app21 self.include_settings()22 self.include_db()23 self.include_mount()24 def include_settings(self):25 """26 Подключить настройки проекта27 """28 #: 1. Подключаем переменные окружения из настроек проекта29 mount_env(self.settings_obj)30 def include_mount(self):31 """32 Подключаем зависимости приложения33 """34 self.settings_obj.Mount(self.app).run_mount()35 @staticmethod36 def include_db():37 """38 Подключить БД39 """40 SQL(environ['SQLALCHEMY_DATABASE_URL'])41 @staticmethod42 async def init_models():43 """44 Создать таблицы в БД, которые подключены к проекту45 """46 # Создать таблицы который указаны через использование BaseMode из47 # библиотеки SqlAlchemy48 if len(SQL.Base.metadata.tables) > 0:49 async with SQL.engine.begin() as conn:50 await conn.run_sync(SQL.Base.metadata.create_all)51 logger.info(f"Таблицы созданы {list(SQL.Base.metadata.tables.keys())}")52 # Создать таблицы которые указаны через наследование `RawSqlModel`53 if RawSqlModel.all_tables:54 for k, v in RawSqlModel.all_tables.items():55 v: RawSqlModel56 await SQL.execute_raw_sql(v.create_table())57 try:58 if v.init_data():59 await SQL.execute_raw_sql(v.init_data())60 except DatabaseError as e:61 logger.warning(f"Ошибка инициализации данных:{e}", 'init_data')62 logger.info(f"Таблица создана {k}", 'init_models')63 @staticmethod64 async def delete_models():65 """66 Удалить таблицы из БД, которые подключены к проекту67 """68 if input("Вы действительно хотите удалить все таблицы ? Для подтверждения введите `YES`") == "YES":69 # Удаляем таблицы модели которых созданы через `BaseMode` из библиотеки SqlAlchemy70 if len(SQL.Base.metadata.tables) > 0:71 async with SQL.engine.begin() as conn:72 await conn.run_sync(SQL.Base.metadata.drop_all())73 logger.info(f"Таблицы удалены {list(SQL.Base.metadata.tables.keys())}", 'delete_models')74 # Удаляем таблицы которые указаны через наследование `RawSqlModel`75 if RawSqlModel.all_tables:76 for k, v in RawSqlModel.all_tables.items():77 v: RawSqlModel78 await SQL.execute_raw_sql(v.drop_table())79 logger.info(f"Таблица удалена {k}", 'delete_models')80 else:81 logger.info("Таблицы НЕ удалены")82 @staticmethod83 def create_app(name_app: str):84 """85 Создать шаблон приложения86 :param name_app: Имя приложения87 - ИмяПриложения88 - template89 - api.py90 - base.py91 - model.py92 - model_logic.py93 - schema.py94 - helpful.py95 """96 # Путь для нового приложения97 path_app: str = os.path.join(environ['BASE_DIR'], name_app)98 # Создаем путь из папок к новому приложению99 os.makedirs(path_app, exist_ok=True)100 # Создаем папку с Html шаблонами101 os.makedirs(os.path.join(path_app, 'templates'), exist_ok=True)102 # Создаем шаблонные файлы в папке с новым приложением103 create_file(os.path.join(path_app, 'api.py'), """104from fastapi import APIRouter, Form, Response, Request, Depends105from sqlalchemy.ext.asyncio import AsyncSession106from vetcin_pack_fastapi.database_pack.base import SQL107from vetcin_pack_fastapi.session_pack.base import SESSION_RAM108router = APIRouter(tags=["{name_app}"], prefix="/{name_app}")109name_app = "{name_app}"110 """[1:].format(name_app=name_app))111 create_file(os.path.join(path_app, 'base.py'))112 create_file(os.path.join(path_app, 'helpful.py'))113 create_file(os.path.join(path_app, 'model.py'), '''114from vetcin_pack_fastapi.database_pack.model_logic import RawSqlModel, SqlTypeReturn115class ИмяМодели(RawSqlModel):116 table_name = 'ИмяМодели'117 @classmethod118 def create_table(cls) -> SqlTypeReturn:119 return SqlTypeReturn(120 raw_sql="""121 create table if not exists :table_name122 (123 id serial primary key124 );125 """, 126 params={"table_name":cls.table_name}127 )128 '''[1:])129 create_file(os.path.join(path_app, 'model_logic.py'), '''130from {name_app}.model import ИмяМодели131class ИмяМоделиLogic(ИмяМодели):132 ...133 '''[1:].format(name_app=name_app))134 create_file(os.path.join(path_app, 'schema.py'))135 # Отчетность...

Full Screen

Full Screen

app.py

Source:app.py Github

copy

Full Screen

1from flask import Flask2from flask import render_template,request,url_for,redirect3import os4import requests5import re6import pytube7import datetime8import matplotlib.pyplot as plt9from auxiliar import yout_to_detections,get_brand_expo,gen_img10DARKNET_PATH="/home/jf/yolov4/darknet/"11ROOT_DIR='/home/jf/'12PATH_APP='/home/jf/Desktop/brandCrawler/'13app=Flask(__name__)14@app.route("/")15@app.route("/home")16def home():17 return render_template('home.html',busc="Ingrese el enlace de Youtube aquí")18@app.route("/results",methods=['GET','POST'])19def results():20 inicio=datetime.datetime.now()21 busq=request.form.get('search')22 print(busq)23 if len(re.findall("youtube",busq))==0 and len(re.findall("youtu",busq))==0:24 return("No es un enlace de Youtube, por favor ingrese un enlace válido")25 else:26 det_name=yout_to_detections(busq,ROOT_DIR,'vid',DARKNET_PATH=DARKNET_PATH)27 detections=get_brand_expo(det_name)28 print("elapsed time {:.2f} seconds".format((datetime.datetime.now()-inicio).total_seconds()))29 print(detections)30 gen_img(detections,path_app=PATH_APP)31 #return (detections)32 return render_template('results.html',html=detections.to_html(),video=busq)33if __name__ == "__main__":...

Full Screen

Full Screen

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