def test_3(self): result = self.g.doc.structure( '//issue', home_url='./home-url/text()', articles=x( './articles/article', id='./@id', title='./title/text()', url='./url/text()', hotkeys=x( './hotkeys', hotkey='./hotkey/text()' ) ) ) self.assertEqual( result, loads(''' [ { "articles": [ { "url": "/article1", "id": "3", "hotkeys": [ { "hotkey": "language" } ], "title": "Issue overview" }, { "url": "/article2", "id": null, "hotkeys": [ { "hotkey": null } ], "title": "Latest reviews" }, { "url": null, "id": "4", "hotkeys": [ { "hotkey": null } ], "title": null } ], "home_url": "www.j.ru/issues/" } ] ''') )
def test_3(self): result = self.grab.doc.structure( '//issue', home_url='./home-url/text()', articles=x( './articles/article', id='./@id', title='./title/text()', url='./url/text()', hotkeys=x( './hotkeys', hotkey='./hotkey/text()' ) ) ) self.assertEqual( result, loads(''' [ { "articles": [ { "url": "/article1", "id": "3", "hotkeys": [ { "hotkey": "language" } ], "title": "Issue overview" }, { "url": "/article2", "id": null, "hotkeys": [ { "hotkey": null } ], "title": "Latest reviews" }, { "url": null, "id": "4", "hotkeys": [ { "hotkey": null } ], "title": null } ], "home_url": "www.j.ru/issues/" } ] ''') )
def test_2(self): result = self.g.doc.structure( '//issue', x( './detail', description=('./description/text()', lambda item: ' '.join(item.split())), detail_number=('./number/text()', int) ), title='./title/text()', date='./date/text()', ) self.assertEqual( result, loads(''' [ { "detail_number": 445, "date": "12.09.98", "description": "issue 2 detail description", "title": "XML today" } ] ''') )
def test_2(self): result = self.grab.doc.structure( '//issue', x( './detail', description=('./description/text()', lambda item: ' '.join(item.split())), detail_number=('./number/text()', int) ), title='./title/text()', date='./date/text()', ) self.assertEqual( result, loads(''' [ { "detail_number": 445, "date": "12.09.98", "description": "issue 2 detail description", "title": "XML today" } ] ''') )