Example #1
0
    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
Example #2
0
    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 = """
Example #4
0
    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