def setUp(self): doc = Document() doc.url = ( "http://www.erafrance.com/annonce-immobiliere/" "JCZ01-541/Appartement-3-Pieces-A-vendre-MANDEL" "IEU-LA-NAPOULE&acm=JCZ01" ) doc.features = { "public_url": doc.url, "pipeline_name": "noap", "title": "Appartement 3 Pièces A vendre MANDELIEU LA NAPOULE", "features": """Prix : 350 000 € ERA - Conversion monétaire Simulateur financement Transaction : A vendre Type de bien : Appartement Nombre de pièces : 3 Nombre de chambres : 2 Surface habitable (environ) : 69 m""", "description": """Votre agence ERA vous propose à la vente, un beau 3 pièces de 70 m² à Mandelieu. Idéalement situé à Cannes Marina au 3ème étage, vous bénéficiez d''une vue imprenable sur la piscine. L''appartement se compose d''un hall d''entrée, d''un séjour donnant sur une terrasses avec vue sur la piscine, d''une cuisine indépendante et toute équipée, de deux chambres, d''une salle de bain, d''un wc, et de nombreux placards. Place de parking et cave. Pour plus d''information n''hésitez pas à contacter notre agence immobilière au 04.93.48.60.60.""", "xlocation": "MANDELIEU LA NAPOULE, Alpes Maritimes", } doc.body = "<html><head></title>Appartement 3 Pièces A vendre MANDELIEU LA NAPOULE<title><body></body></html>" self.doc = doc
def test_document_object(self): d = Document() d.features = { "item1": "val1" } d.content = { "content1": "val1" } d.url = "http://example.com" json = d.toJSON() ob = ujson.loads(json) self.assertEqual( ob['features']['item1'], d.features['item1'] ) self.assertEqual(ob['url'], d.url) self.assertEqual(len(ob['content']), 1) self.assertEqual(str(d), d.toJSON()) with mock.patch("ujson.dump") as dump: dump.return_value = None fp, fo = tempfile.mkstemp() d.toJSON(fp) self.assertEqual(fp, dump.call_args[0][0])
def setUp(self): self.html = """ <html> <head> <meta property="og:title" content="open graph title"/> </head> <body> <h1>Some Title</h1> <div id='content'> <p> Feature1 <span>Value1</span> </p> <p> Feature2 <span>Value2</span> </p> </div> <div> <div> <div> Feature3 <span>Value3</span> </div> </div> <img class='someImage' src="/test.png"/> </div> <table> <tr> <td class="f1">123</td> <td>junk</td> </tr> <tr> <td class="f2">456</td> <td>junk</td> </tr> <tr> <td class="f3">789</td> <td>junk</td> </tr> </table> </body> """ doc = Document() doc.body = self.html self.doc = doc self.options = """
def parse(self, document: Document): stream = self.get_stream(document) for element_name, pipe in self.config.items(): elements = reduce(self.parse_command, pipe, stream) document.features[element_name] = elements return document