def test_NAMESPACE_moduleparse_fileparse(self): #item 259 import xpld objet_xpld = xpld.xpld() #item 262 import argparse #item 263 import module_parse_xpld #item 261 # le fichier # comme param de argparse parsed2 = argparse.Namespace() parsed2.gui = False parsed2.file = True parsed2.filer = "2016.bak" parsed2.filew = "2016.ras" #parsed2.jours = None #parsed2.mois = None #parsed2.annee = None #parsed2.poste = None parse_jours2 = parsed2 #parse_module_jours2 = module_parse_xpld.parse(['-f',"2016.bak"]) parse_module_jours2 = module_parse_xpld.parse(['file',"-r","2016.bak", "-w", "2016.ras"]) self.assertEqual(parse_jours2, parse_module_jours2)
def test_EXTRACT_get_poste(self): #item 163 import xpld ligne = "1,2,3 1 2016 P1" poste_voulu = "P1" poste_obtenu = xpld.xpld().get_poste(ligne) self.assertEqual(poste_voulu,poste_obtenu)
def test_DOMAINE_mois_valide(self): #item 197 import xpld objet_xpld = xpld.xpld() #item 198 self.assertEqual(objet_xpld.validate_month("1"),True) self.assertEqual(objet_xpld.validate_month("12"),True)
def test_DOMAINE_mois_invalide_oob(self): #item 204 import xpld objet_xpld = xpld.xpld() #item 205 self.assertEqual(objet_xpld.validate_month("13"),False)
def test_DOMAINE_mois_invalide_notmonth(self): #item 211 import xpld objet_xpld = xpld.xpld() #item 212 self.assertEqual(objet_xpld.validate_month("aaa"),False)
def test_DOMAINE_annee_valide(self): #item 218 import xpld objet_xpld = xpld.xpld() #item 219 self.assertEqual(objet_xpld.validate_year("aaa"),False) self.assertEqual(objet_xpld.validate_year("2012"),True) self.assertEqual(objet_xpld.validate_year("1998"),False) self.assertEqual(objet_xpld.validate_year("2022"),False)
def test_DOMAINE_poste_invalide_notinpostekeys(self): #item 172 import xpld objet_xpld = xpld.xpld() #item 174 ligne = "1,2,3 1 2016 P1" ligne_no_poste = "1,2 1 2016" ligne_cp = "1,2,3 1 2016 CP" # verif du domaine du type ligne : type jours + type mois + type annee + type poste: self.assertRaises(ValueError,objet_xpld.validate_poste,"XK")
def test_DOMAINE_valider_ligne(self): #item 225 import xpld objet_xpld = xpld.xpld() #item 226 ligne = "1,2,3 1 2016 P1" ligne_no_poste = "1,2 1 2016" ligne_cp = "1,2,3 1 2016 CP" ligne_valide_un_seul_jour_pour_ce_poste = "1 2 2016 P1" # verif du domaine du type ligne : type jours + type mois + type annee + type poste: self.assertEqual(objet_xpld.valider_ligne(ligne), True) self.assertEqual(objet_xpld.valider_ligne(ligne_cp), True) self.assertEqual(objet_xpld.valider_ligne(ligne_no_poste), False) self.assertEqual(objet_xpld.valider_ligne(ligne_valide_un_seul_jour_pour_ce_poste), True)
def test_DOMAINE_poste_valide(self): #item 190 import xpld objet_xpld = xpld.xpld() #item 191 self.assertEqual(objet_xpld.validate_poste("P1"),True) self.assertEqual(objet_xpld.validate_poste("P2"),True) self.assertEqual(objet_xpld.validate_poste("P3"),True) self.assertEqual(objet_xpld.validate_poste("P4"),True) self.assertEqual(objet_xpld.validate_poste("P5"),True) self.assertEqual(objet_xpld.validate_poste("P6"),True) self.assertEqual(objet_xpld.validate_poste("P7"),True) self.assertEqual(objet_xpld.validate_poste("R1"),True) self.assertEqual(objet_xpld.validate_poste("RCP"),True) self.assertEqual(objet_xpld.validate_poste("AM"),True)
def test_EXTRACT_get_divers(self): #item 232 ligne = "1,2,3 1 2016 P1" #item 234 import xpld objet_xpld = xpld.xpld() #item 233 # verif des differentes extractions jours, mois, annee, poste self.assertEqual(objet_xpld.split_virg("1,2,3"),[1,2,3]) self.assertEqual(objet_xpld.get_days(ligne),"1,2,3") self.assertEqual(objet_xpld._get_split_or_die(ligne,'jours'),"1,2,3") self.assertEqual(objet_xpld.get_month(ligne),1) self.assertEqual(objet_xpld.get_year(ligne),2016) self.assertEqual(objet_xpld.get_poste(ligne),"P1")
def test_EXTRACT_xplode(self): #item 242 import xpld objet_xpld = xpld.xpld() #item 240 ligne = "1,2,3 1 2016 P1" #item 241 # verif utilitaire reel version en une fois self.assertEqual(objet_xpld.xplode(ligne),[{'day': 1, 'month':1, 'year':2016, 'poste' : 'P1'}, {'day': 2, 'month':1, 'year':2016, 'poste': 'P1'},{'day': 3, 'month':1, 'year':2016, 'poste' : 'P1'}]) # verif utilitaire reel version iterateur ite = objet_xpld.xplode_ite(ligne) for i in [1,2,3]: self.assertEqual(next(ite), {'day':i, 'month' : 1, 'year': 2016, 'poste': 'P1'})
def test_NAMESPACE_moduleparse_subligne(self): #item 180 import xpld objet_xpld = xpld.xpld() #item 184 import argparse parsed = argparse.Namespace() parsed.file = False parsed.jours = "1,2,3" parsed.mois = "1" parsed.annee = "2016" parsed.poste = "P1" parsed.gui = False #test de module_parse_xpld import module_parse_xpld parse_jours = parsed parse_module_jours = module_parse_xpld.parse(['ligne','1,2,3','1','2016','P1']) self.assertEqual(parse_jours, parse_module_jours)
def gen_tuple_entree_ite(self): import xpld for ligne_fichier in self.getBdd().iterLignesFichiersPostes(): for ligne_poste in xpld.xpld().xplode_ite(ligne_fichier): yield Entree(ligne_poste).to_tuple()
import constantes from db import bdd from itertools import islice """ je veux une fonction pour mon larbin - ouvrant un fichier texte, - explosant chaque ligne, - transformant chaque ligne explosee en un poste via: * la creation d un horodatage de début i. par la combinaison d une date et d une heure: - la date etant annee mois et jour de début de poste - le début de poste dépendant du type de poste: * le type de poste est lu dans le fichier texte à destination du larbin * la correspondance entre type de poste et heure de début se fait à partir de la lecture de constantes.py * la creation d un horodatage de fin i . par l ajout à l horodatage de début de poste d une duree - la duree dépend du type de poste: * le type de poste est lu dans le fichier texte à destination du larbin * la correspondance entre type de poste et duree se lit dans constantes.py * la creation d un type d entree dans le planning lu dans constantes.py * la création d une categorie d entree lu dans constantes.py: travail ou absence""" with open(next(bdd().iterFichiersPostes())) as f: for ligne in f: for ligne_poste in xpld.xpld().xplode_ite(ligne): print(ligne_poste) ## datetime_debutposte = datetime.datetime.combine( ## datetime.date(ligne_poste['year'], ligne_poste['month'], ligne_poste['day']), ## datetime.time(ligne_poste) ##