Exemplo n.º 1
0
 def htmlfile_to_c2c(filename):
     html = TestParserMocked.read_file_to_html(filename)
     soup = BeautifulSoup(html, 'lxml')
     c2c = C2CParser(url=None)
     c2c.rawsoup = soup
     c2c.urlvoie = 'https://www.camptocamp.org/routes/171402/fr/presles-eliane-bim-bam-boum'
     return c2c
Exemplo n.º 2
0
 def test_filtre_doublon(self):
     logger.info("\nTest Filtrage des doublons...")
     liste_non_filtree = [
         'https://www.camptocamp.org/routes/53914',
         'https://www.camptocamp.org/routes/53914'
     ]
     liste_filtree = C2CParser.filter_url(liste_non_filtree)
     self.assertCountEqual(liste_filtree, self.expected_liste)
Exemplo n.º 3
0
 def test_filtre_mauvais_baseurl(self):
     logger.info("\nTest Filtrage mauvais baseurl...")
     liste_non_filtree = [
         'https://www.camp.org/routes/53914',
         'https://www.tocamp.org/routes/53914',
         'https://www.camptocamp.org/routes/53914'
     ]
     liste_filtree = C2CParser.filter_url(liste_non_filtree)
     self.assertCountEqual(liste_filtree, self.expected_liste)
Exemplo n.º 4
0
 def process_list(self):
     """
     Processing de tous les éléments d'une liste avec un thread par voie
     """
     listaparser = C2CParser.init_with_list(self.userinput)
     with ThreadPoolExecutor(max_workers=nb_workers) as executor:
         # Start the load operations and mark each future with its URL
         future_to_url = {executor.submit(self.process_unit, url): url for url in listaparser}
         for future in as_completed(future_to_url):
             logger.info("Fin de traitement de {}".format(future_to_url[future]))
Exemplo n.º 5
0
 def process_unit(self, urlvoie):
     """
     Processing unitaire d'une voie
     :param urlvoie: url de la voie à Parser
     :return: 0 si pas de parsing, 1 si parsing.
     """
     urlmin = C2CParser.get_urlvoie(urlvoie)
     exist = InterfaceDAO.check_exists(urlmin, self.backends)
     # Si la voie n'existe pas ou si nous sommes en mode update
     if not exist or self.update:
         logger.info("Voie: {} existante id: {}, mode Update: {}".format(urlvoie, exist, self.update))
         parser = C2CParser(urlmin)
         voie = Voie.from_c2cparser(parser)
         InterfaceDAO.persistance_voie(voie, self.backends)
         logger.info(voie)
         self.count_parsed = self.count_parsed + 1
         voie = None
         return 1
     else:
         logger.info("Voie déjà existante: {} et aucun reparsing demandé".format(urlmin))
         return 0
Exemplo n.º 6
0
 def from_c2cparser(cls, c2cparser):
     """
     Construction alternative de l'objet Voie à partir d'un parser camptocamp
     :param c2cparser: parser permettant de construire l'objet
     :return: objet Voie
     """
     url = C2CParser.get_urlvoie(c2cparser.urlvoie)
     titre = c2cparser.get_titre()
     area = c2cparser.get_area()
     approche = c2cparser.get_approche()
     longueurs = c2cparser.get_details_longueurs()
     difficultes = c2cparser.get_alt_difficultes()
     commentaires = c2cparser.get_commentaires()
     cotations = c2cparser.get_cotations()
     sorties = c2cparser.get_outings()
     return cls(url, titre, area, approche, longueurs, difficultes, commentaires, cotations, sorties)
Exemplo n.º 7
0
 def test_get_urlvoie(self):
     inputurl = 'https://www.camptocamp.org/routes/171402/fr/presles-eliane-bim-bam-boum'
     expected = 'https://www.camptocamp.org/routes/171402'
     output = C2CParser.get_urlvoie(inputurl)
     self.assertEqual(output, expected)
Exemplo n.º 8
0
 def test_get_baseurl(self):
     logger.info("\nTest fonction get_baseurl()...")
     baseurl = C2CParser.get_baseurl(
         'https://www.camptocamp.org/routes/53914')
     self.assertEqual(baseurl, self.expected_baseurl)
Exemplo n.º 9
0
 def setUpClass(cls):
     cls.expected_liste = ['https://www.camptocamp.org/routes/53914']
     cls.expected_baseurl = C2CParser.baseurl
     cls.c2c = C2CParser('https://www.camptocamp.org/routes/171402')
Exemplo n.º 10
0
 def test_get_baseurl(self):
     baseurl = C2CParser.get_baseurl('https://www.camptocamp.org/routes/53914')
     self.assertEqual(baseurl, self.expected_baseurl)
Exemplo n.º 11
0
 def test_filtre_doublon(self):
     liste_non_filtree = ['https://www.camptocamp.org/routes/53914',
                          'https://www.camptocamp.org/routes/53914']
     liste_filtree = C2CParser.filter_url(liste_non_filtree)
     self.assertCountEqual(liste_filtree, self.expected_liste)