Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/icoz/habraparse.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoricoz <icoz.vt@gmail.com>2016-07-05 22:07:51 +0300
committericoz <icoz.vt@gmail.com>2016-07-05 22:07:51 +0300
commitb2a3a29aac57a8f6b77c0ca27707e76f1eed3429 (patch)
treec38aee3f78a0350b57ea4e62d0c734ac4c964914
parenta12ea54bc620845f4b97c8bc4d99c438211d1621 (diff)
Исправлены ошибки в тестах.
Код оформлен по PEP8
-rw-r--r--habr/topic.py52
1 files changed, 31 insertions, 21 deletions
diff --git a/habr/topic.py b/habr/topic.py
index 6446a99..5436d1f 100644
--- a/habr/topic.py
+++ b/habr/topic.py
@@ -66,22 +66,29 @@ class TMTopic(object):
# comments = doc.xpath("//div[@class='comments_list ']//div[@class='comment_item']")
# comments = doc.xpath("//ul[@id='comments-list']//li[@class='comment_item']")
# record = (author, text)
- authors = list(map(lambda x: x.text, doc.xpath("//ul[@id='comments-list']//a[@class='comment-item__username']")))
- cmt_texts = list(map(lambda x: x.text.strip(), doc.xpath("//ul[@id='comments-list']//div[starts-with(@class,'message html_format ')]")))
- c_id = list(map(lambda x: int(x.attrib['id'][8:]), doc.xpath("//ul[@id='comments-list']//li[@class='comment_item']")))
- p_id = list(map(lambda x: int(x.attrib['data-parent_id']), doc.xpath("//ul[@id='comments-list']//span[@class='parent_id']")))
+ authors = list(
+ map(lambda x: x.text, doc.xpath("//ul[@id='comments-list']//a[@class='comment-item__username']"))
+ )
+ cmt_texts = list(map(lambda x: etree.tostring(x, pretty_print=True, method='html').decode('utf-8'),
+ doc.xpath("//ul[@id='comments-list']//div[starts-with(@class,'message html_format ')]"))
+ )
+ c_id = list(
+ map(lambda x: int(x.attrib['id'][8:]), doc.xpath("//ul[@id='comments-list']//li[@class='comment_item']"))
+ )
+ p_id = list(map(lambda x: int(x.attrib['data-parent_id']),
+ doc.xpath("//ul[@id='comments-list']//span[@class='parent_id']")))
time = list(map(lambda x: x.text.strip(), doc.xpath("//ul[@id='comments-list']//time")))
tpl = tuple(zip(authors, cmt_texts, c_id, p_id, time))
self.post['comments'] = tuple(
map(
lambda x:
- {
- 'author':x[0],
- 'text': x[1],
- 'c_id': x[2],
- 'p_id': x[3],
- 'time': x[4],
- },
+ {
+ 'author': x[0],
+ 'text': x[1],
+ 'c_id': x[2],
+ 'p_id': x[3],
+ 'time': x[4],
+ },
tpl)
)
self.post['comments_count'] = len(self.post['comments'])
@@ -163,8 +170,8 @@ class TestHabraTopic(TestCase):
pp.pprint(t.title())
pp.pprint(t.post['comments_count'])
pp.pprint(t.post['rating'])
- self.assertEqual(t.comments()[0][0], 'keccak')
- self.assertEqual(t.comments()[1][0], 'icoz')
+ self.assertEqual(t.comments()[0]['author'], 'keccak')
+ self.assertEqual(t.comments()[1]['author'], 'icoz')
def test_topic3(self):
t = HabraTopic(28108)
@@ -175,14 +182,17 @@ class TestHabraTopic(TestCase):
pp.pprint(t.title())
pp.pprint(t.post['comments_count'])
pp.pprint(t.post['rating'])
- self.assertEqual(t.comments()[0][0], 'cachealot')
- self.assertEqual(t.comments()[0][1], 'не поверите, 3,5 часа убил на пост )')
- self.assertEqual(t.comments()[0][2], 734629)
- self.assertEqual(t.comments()[0][3], 0)
- self.assertEqual(t.comments()[1][0], 'ShPashok')
- self.assertEqual(t.comments()[1][1], 'а 2 секунды на хабракат пожалели :)')
- self.assertEqual(t.comments()[1][2], 734630)
- self.assertEqual(t.comments()[1][3], 734629)
+ self.assertEqual(t.comments()[0]['author'], 'cachealot')
+ from lxml import html
+ txt = html.fromstring(t.comments()[0]['text']).text_content().replace("'",'').strip()
+ self.assertEqual(txt, 'не поверите, 3,5 часа убил на пост )')
+ self.assertEqual(t.comments()[0]['c_id'], 734629)
+ self.assertEqual(t.comments()[0]['p_id'], 0)
+ self.assertEqual(t.comments()[1]['author'], 'ShPashok')
+ txt = html.fromstring(t.comments()[1]['text']).text_content().replace("'",'').strip()
+ self.assertEqual(txt, 'а 2 секунды на хабракат пожалели :)')
+ self.assertEqual(t.comments()[1]['c_id'], 734630)
+ self.assertEqual(t.comments()[1]['p_id'], 734629)
class TestGTTopic(TestCase):