How to use start_activity method in robotframework-appiumlibrary

Best Python code snippet using robotframework-appiumlibrary_python

planning_jour.py

Source:planning_jour.py Github

copy

Full Screen

1## IMPORTS2from activity import *3from math import *4from enfant_planning import *5from Entree import *6import datetime as dt7import random8##==========================================================================================9# CLASSE PLANNING D'UN JOUR10##==========================================================================================11class planning_jour:12 def __init__(self,liste_enfant_planning, jour, pause_dejeuner, lieu_depart, heure_debut_journee, liste_id_dispo_suite , mode_transport ): #pause_dejeuner = recup_dinner(json_entree), lieu_depart = recup_area(json_entree), heure_debut_journee = recup_plushour(json_entree)13 self.liste_enfant_planning = liste_enfant_planning # Liste d'objet d'enfant_planning14 self.jour = jour # La liste des 2 jours correspondant au planning, en timestamp15 self.pause_dejeuner = pause_dejeuner # booleen precisant si on veut une pause dejeuner16 self.lieu_depart = lieu_depart 17 self.heure_debut_journee = heure_debut_journee18 self.note = self.fonction_evaluation()19 self.liste_id_dispo_suite = liste_id_dispo_suite # Id qui peuvent etre utilisé pour ajouter des activités apres : qu'est ce qu'on peut ajouter au planning, utilisé pour les jours suivant20 self.mode_transport = mode_transport21 22 def affichage_planning_jour(self):23 print("------------------------PLANNING------------------------")24 print("Jour du planning : ", self.jour)25 print("Lieu de départ : ", self.lieu_depart)26 print("Si l'utilisateur souhaite ou non une pause déjeuner : ",self.pause_dejeuner)27 print("Note d'évalutation : ", self.note)28 print("Planning de la journée : ")29 if len(self.liste_enfant_planning) == 0:30 print("Pas d'activités")31 else:32 for k in range (len(self.liste_enfant_planning)):33 self.liste_enfant_planning[k].affichage_enfant_planning()34 35 ##==========================================================================================36 # Evalutaion37 ##==========================================================================================38 def fonction_evaluation(self):39 # dans l'ordre de valorisation des utilités : nombre (^2), marge (*10), prix (*1), temps d'attente (*2 sur 60) et temps de trajet (*1 sur 60)40 planing_activite_deux_jours = self.liste_enfant_planning41 utilite_nb_act = 3*int(pow(len(planing_activite_deux_jours),6)) #On la met en int pour de la lisibilité, en ^2 pour valoriser le nombre d'activités42 utilite_temps_trajet = 043 utilite_temp_attente = 044 utilite_cout = 045 utilite_marge = 046 indice_jour = 047 utilite_jour_vide = 048 if(len(planing_activite_deux_jours)<len(self.jour)):49 utilite_jour_vide = -10000000000000050 for i in range(len(planing_activite_deux_jours) - 1): #calcul temps de trajet et temps d'attente 51 jour_timestamp = planing_activite_deux_jours[i].jour52 debut_act_suivante = planing_activite_deux_jours[i+1].debut_activity # debut suivant53 fin_act_actuelle = planing_activite_deux_jours[i].debut_activity + planing_activite_deux_jours[i].nombre_unites # fin actuelle54 temps_trajet = planing_activite_deux_jours[i].temps_act_precedente * 500 # temps entre deux55 utilite_temps_trajet += temps_trajet56 57 utilite_cout += (planing_activite_deux_jours[i].activity.Price[jour_timestamp])*20 #On penalise le cout (prix) de l'activité (*1)58 utilite_marge += (planing_activite_deux_jours[i].activity.margin[jour_timestamp])*10 #valorisation en *10 de la marge59 temps_attente_entre_deux_activites = debut_act_suivante - fin_act_actuelle60 utilite_temp_attente += 3000*max(0,temps_attente_entre_deux_activites - temps_trajet) #On penalise plus le temps d'attente61 62 if(i == len(planing_activite_deux_jours) - 1):63 utilite_cout += (planing_activite_deux_jours[i+1].activity.Price[jour_timestamp])*264 utilite_marge += (planing_activite_deux_jours[i+1].activity.margin[jour_timestamp])*1065 66 self.note = int(utilite_jour_vide + utilite_nb_act + utilite_marge - utilite_temps_trajet/3600 - utilite_temp_attente/3600 - utilite_cout) #On renvoie la note du planning67 #print("nb activite :",len(planing_activite_deux_jours))68 #print("utilite_nb_act :",utilite_nb_act)69 #print("utilite_marge :",utilite_marge)70 #print("utilite_temps_trajet :",utilite_temps_trajet)71 #print("utilite_temp_attente :",utilite_temp_attente)72 #print("utilite_cout :",utilite_cout)73 return self.note74 75 ##==========================================================================================76 # MUTATIONS77 ##==========================================================================================78 79 def mutation_deletion(self):80 81 planning = self.liste_enfant_planning82 if(len(planning) > 1): 83 indice_random = random.randint(0, len(planning)-1)84 85 self.liste_id_dispo_suite.append(self.liste_enfant_planning[indice_random].activity.Id)86 if (indice_random==0): #Premier cas : lactivité retirée est la premiere87 temp1 = self.liste_enfant_planning[1].activity.localisation[0]88 temp2 = self.liste_enfant_planning[1].activity.localisation[1] 89 loc_1 = self.lieu_depart["latitude"]90 loc_2 = self.lieu_depart["longitude"] #On calcule le temps trajet depuis le lieu de départ91 temps_trajet_maison_act = temps_de_trajet_deux_activites(temp1, temp2, loc_1, loc_2, self.mode_transport)92 self.liste_enfant_planning[1].temps_act_precedente = temps_trajet_maison_act93 planning.pop(0)94 elif(indice_random == len(planning) - 1): #deuxieme cas cest la derniere (pas de temps de trajet) a gerer95 planning.pop(-1) 96 else: #Cas general on enleve i du coup il faut reconnecter i-1 et i+1 au niveau des temps de trajets et on est pas dans le cas97 #ou i est le derrnier element. Du coup i-1 et i+1 existent forcement sinon i serait egal à len(planning)-198 temp1 = self.liste_enfant_planning[indice_random-1].activity.localisation[0] 99 temp2 = self.liste_enfant_planning[indice_random-1].activity.localisation[1] 100 temp3 = self.liste_enfant_planning[indice_random+1].activity.localisation[0] 101 temp4 = self.liste_enfant_planning[indice_random+1].activity.localisation[1] 102 temp_trajet = temps_de_trajet_deux_activites(temp1, temp2, temp3, temp4, self.mode_transport)103 self.liste_enfant_planning[indice_random+1].temps_act_precedente = temp_trajet 104 planning.pop(indice_random)105 #remettre a jour temps de trajet avec 106 self.liste_enfant_planning = planning107 else:108 self.liste_enfant_planning = []109 return 110 def mutation_par_insertion(self, activity):111 enfant_planing = enfant_planning(0,activity,0,0)112 planing = self.liste_enfant_planning113 temp1 = enfant_planing.activity.localisation[0] # localisation de l'activité qu'on veut insérer114 temp2 = enfant_planing.activity.localisation[1] 115 loc_1 = self.lieu_depart["latitude"]116 loc_2 = self.lieu_depart["longitude"]117 temps_trajet_maison_act = temps_de_trajet_deux_activites(temp1, temp2, loc_1, loc_2, self.mode_transport)118 blank_activity_start = enfant_planning(0,activity,0,0) # Sert a faire des comparaison en segments119 blank_activity_start.nombre_unites = 0120 planing.insert(0,blank_activity_start)121 blank_activity_end = enfant_planning(1440 * len(self.jour)*60,activity,0,0)122 blank_activity_end.nombre_unites = 0123 planing.append(blank_activity_end)124 125 for m in range(len(activity.liste_de_jours)):126 debut_jour = 1440*m + int(self.heure_debut_journee/60)127 if int(activity.liste_de_jours[m]) != -m: 128 for j in range(len(activity.list_begin_hours[m])):129 if(activity.visite_libre):130 start_activity = int(int(activity.list_begin_hours[m][j][0])/60) # debut de l'activité que l'on veut inserer131 end_activity = int(int(activity.list_begin_hours[m][j][1])/60) # fin de l'activité que l'on veut inserer132 duree = enfant_planing.nombre_unites133 else: 134 start_activity = int(int(activity.list_begin_hours[m][j])/60)135 duree = enfant_planing.nombre_unites136 137 enfant_planing.debut_activity = start_activity + 1440*m 138 start_activity = enfant_planing.debut_activity 139 end_activity = start_activity + duree140 # activté qu'on veut insérer141 for i in range(len(planing)-1):142 fin_activite = planing[i].debut_activity + planing[i].nombre_unites # fin activité i143 debut_activite = planing[i+1].debut_activity # debut activité i+1144 borne_inf = max(fin_activite, start_activity) #dans le cas d'un musée : 145 146 temp3 = planing[i].activity.localisation[0] # localisation de l'activité i147 temp4 = planing[i].activity.localisation[1] 148 #temp_trajet = 0 149 temp_trajet = temps_de_trajet_deux_activites(temp1, temp2, temp3, temp4, self.mode_transport)150 temp_tr0 = temp_trajet151 if(activity.visite_libre):152 if(borne_inf + temp_trajet + duree <= debut_activite): #Si cest un musée On peut l'inserer nimporte quand dans l'intervalle borne sup borne inf 153 start_activity = borne_inf + temp_trajet 154 end_activity = start_activity + duree155 else:156 start_activity = 1440 * len(self.jour) #Si cest pas le cas on s'assure qu'on ne l'insere pas157 end_activity = start_activity + duree158 if(debut_jour+temps_trajet_maison_act<=start_activity):159 if(fin_activite + abs(temp_trajet) <= start_activity): # Si la fin de l'acivité i + le temps de trajet est inférieur au début de l'activité que l'on veut insérer160 enfant_planing.temps_act_precedente = temp_trajet161 162 temp3 = planing[i+1].activity.localisation[0]163 temp4 = planing[i+1].activity.localisation[1] 164 #temp_trajet = 0 165 temp_trajet = temps_de_trajet_deux_activites(temp1,temp2,temp3,temp4,self.mode_transport)166 temp_tr1 = temp_trajet167 if(end_activity + abs(temp_trajet) <= debut_activite): #If temps de trajet coherent : si la fin de l'activité que l'on veut insérer + le temps de trajet est inférieur au debut de l'activité i168 planing[i+1].temps_act_precedente=temp_trajet169 170 enfant_planing.jour = int(self.jour[m])171 172 planing.pop(-1)173 enfant_planing.debut_activity = start_activity174 175 planing.pop(0)176 planing.insert(i,enfant_planing)177 self.liste_enfant_planning = planing 178 return True179 planing.pop(0)180 planing.pop(-1)181 182 return False183##==========================================================================================184# Calcul du temps entre deux activités185##==========================================================================================186def temps_de_trajet_deux_activites(latitude_1, longitude_1, latitude_2, longitude_2, mode_transport):187 distance = distance_deux_activites(latitude_1, longitude_1, latitude_2, longitude_2)188 if (mode_transport == "transit"):189 return (distance/4)*3600 + 5*60190 elif (mode_transport == "driving"):191 return (distance/80 )*3600 + 5*60192 193##==========================================================================================194# Calcul de la distance entre deux activités195##==========================================================================================196def distance_deux_activites(latitude_1, longitude_1, latitude_2, longitude_2):197 latitude_1 = radians(float(latitude_1))198 longitude_1 = radians(float(longitude_1))199 latitude_2 = radians(float(latitude_2))200 longitude_2 = radians(float(longitude_2))201 dist_radian = 6371*acos(sin(latitude_1)*sin(latitude_2) + cos(latitude_1)*cos(latitude_2)*cos(longitude_1 - longitude_2))#en km...

Full Screen

Full Screen

test_provenance.py

Source:test_provenance.py Github

copy

Full Screen

...8 p = Provenance()9 p.reset()10 def test_activity(self):11 p = Provenance()12 activity_uuid = p.start_activity("test")13 assert p.current_activity.name == "test"14 p.finish_activity(activity_uuid)15 assert "test" in [b.name for b in p.backlog]16 assert len(p._activities) == 017 assert p.backlog[0].provenance["duration"] > 018 def test_finish_activity_with_wrong_uuid_raises(self):19 p = Provenance()20 p.start_activity("test")21 with self.assertRaises(ValueError):22 p.finish_activity("narf")23 def test_record_input_output(self):24 p = Provenance()25 p.start_activity("test")26 p.record_input("in.file")27 p.record_output("out.file")28 assert "in.file" == p.current_activity.provenance["input"][0]["url"]29 assert "out.file" == p.current_activity.provenance["output"][0]["url"]30 def test_record_input_sets_uuid_to_none_by_default(self):31 p = Provenance()32 p.start_activity("test")33 p.record_input("in.file")34 assert p.current_activity.provenance["input"][0]["uuid"] is None35 def test_record_output_sets_uuid_by_default(self):36 p = Provenance()37 p.start_activity("test")38 p.record_output("out.file")39 assert p.current_activity.provenance["output"][0]["uuid"] is not None40 def test_record_input_sets_uuid(self):41 p = Provenance()42 p.start_activity("test")43 p.record_input("out.file", uuid="abc")44 assert "abc" == p.current_activity.provenance["input"][0]["uuid"]45 def test_record_output_sets_uuid(self):46 p = Provenance()47 p.start_activity("test")48 p.record_output("out.file", uuid="abc")49 assert "abc" == p.current_activity.provenance["output"][0]["uuid"]50 def test_record_configuration(self):51 p = Provenance()52 p.start_activity("test")53 p.record_configuration({"a": 1})54 assert p.current_activity.provenance["configuration"]["a"] == 155 def test_record_configuration_updates_instead_of_overwrites(self):56 p = Provenance()57 p.record_configuration({"a": 1})58 assert p.current_activity.provenance["configuration"]["a"] == 159 p.record_configuration({"a": 2})60 assert p.current_activity.provenance["configuration"]["a"] == 261 def test_record_configuration_updates_and_keeps_old_config_intact(self):62 p = Provenance()63 p.record_configuration({"a": 1})64 assert p.current_activity.provenance["configuration"]["a"] == 165 p.record_configuration({"b": 2})66 assert p.current_activity.provenance["configuration"]["b"] == 267 assert p.current_activity.provenance["configuration"]["a"] == 168 def test_parent_child_activities(self):69 p = Provenance()70 parent_uuid = p.current_activity.uuid71 first = p.start_activity("first")72 assert parent_uuid == p.current_activity._data["parent_activity"]73 p.finish_activity(first)74 second = p.start_activity("second")75 assert parent_uuid == p.current_activity._data["parent_activity"]76 p.finish_activity(second)77 assert first in p.current_activity._data["child_activities"]78 assert second in p.current_activity._data["child_activities"]79 def test_python_packages_are_included(self):80 assert 1 < len(system_provenance()["python"]["packages"])81 def test_as_json(self):82 p = Provenance()83 p.start_activity("test")84 p.as_json()85 def test_as_json_with_non_serialisable_objects_doesnt_fail(self):86 p = Provenance()87 class Foo: pass88 uuid = p.start_activity("test")89 p.record_configuration({"a": Foo()})90 p.finish_activity(uuid)91 p.as_json()92 def test_context_manager(self):93 p = Provenance()94 with p.activity("test"):95 p.record_input("whatever.file")96 assert "test" in [b.name for b in p.backlog]97 def test_outfile(self):98 p = Provenance()99 p.reset()100 fobj = tempfile.NamedTemporaryFile(delete=True)101 p.outfile = fobj.name102 p._export()...

Full Screen

Full Screen

utils.py

Source:utils.py Github

copy

Full Screen

1from flask import request, url_for2from datetime import datetime3from collections import Counter4from operator import itemgetter5def tasks_to_daily_activity(tasks):6 current_time = datetime.utcnow()7 start_stamps = []8 end_stamps = []9 for task in tasks:10 start_stamps.append(round((current_time-task.post_stamp).days))11 # start_stamps.append((current_time-task.post_stamp).days)12 if task.complete:13 end_stamps.append(round(((current_time-task.complete_stamp).days)))14 # end_stamps.append((current_time-task.complete_stamp).days)15 start_activity = Counter(start_stamps)16 end_activity = Counter(end_stamps)17 earliest = max(start_activity)+118 for i in range(earliest):19 if i not in start_activity:20 start_activity.update({i:0})21 if i not in end_activity:22 end_activity.update({i:0})23 start_activity = [x[1] for x in sorted(start_activity.items(), key=itemgetter(0), reverse=True)]24 end_activity = [x[1] for x in sorted(end_activity.items(), key=itemgetter(0), reverse=True)]25 # for i in range(start_activity):26 return (start_activity, end_activity, earliest)27def url_for_other_page(**kwargs):28 ''' Generates target url with pjax and url_for_args '''29 url_for_args = request.arg.copy()30 if 'pjax' in url_for_args:31 url_for_args.pop('_pjax')32 for k, v in kwargs.items():33 url_for_args[key] = value34 return url_for(request.endpoint, **url_for_args)35def partition_query(l, override_partition=False):36 if not override_partition:37 n = 3 if not request.MOBILE else 138 else:39 n = override_partition40 try:41 c = l.count()42 except:43 c = len(l)44 return [l[i:i+n] for i in range(0, c, n)]45 # uncomment if should be generator46 # for i in range(0, c, n):47 # yield l[i:i+n]48def filter_string(s):49 '''50 Cleans and filters out strings with whitespace. Returns None if string51 has no substance.52 '''53 s = s.strip()...

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 robotframework-appiumlibrary 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