summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2014-01-24 23:38:03 +0100
committerYuval Adam <yuv.adm@gmail.com>2014-01-24 23:38:03 +0100
commitd8d555b1fbc6a641c33265ee60ee872748437c4b (patch)
tree0b5f77ec590353faad8c66f9280c6e147a13cebb
parent6de121365a40194b24834e01abf32d2aaac23786 (diff)
Normalize APIs and tests
-rw-r--r--newsdiff/core/parsers/base.py4
-rw-r--r--newsdiff/core/parsers/haaretz.py4
-rw-r--r--newsdiff/core/tests/tests.py5
3 files changed, 7 insertions, 6 deletions
diff --git a/newsdiff/core/parsers/base.py b/newsdiff/core/parsers/base.py
index dae2949..532568a 100644
--- a/newsdiff/core/parsers/base.py
+++ b/newsdiff/core/parsers/base.py
@@ -26,10 +26,10 @@ class HtmlSoupParser(object):
soup = self.get_page(url)
self.parse_article(url, soup)
- def parse_homepage(soup):
+ def parse_homepage(self, soup):
raise NotImplementedError
- def parse_article(self, url):
+ def parse_article(self, url, soup):
raise NotImplementedError
def clean_article_href(self, href):
diff --git a/newsdiff/core/parsers/haaretz.py b/newsdiff/core/parsers/haaretz.py
index d154fb9..8928663 100644
--- a/newsdiff/core/parsers/haaretz.py
+++ b/newsdiff/core/parsers/haaretz.py
@@ -15,8 +15,8 @@ class HaaretzParser(HtmlSoupParser):
BASE_URL = 'http://www.haaretz.co.il'
HOMEPAGE_URL = BASE_URL + '/'
- ARTICLE_HREF_PATTERN = re.compile(r'''^(http:\/\/www\.haaretz\.co\.il)?/((news|opinions|magazine|captain)/[a-zA-Z0-9\-\/]*(\.premium-)?)?\d\.\d+(#article_comments)?$''')
- ARTICLE_ID_PATTERN = re.compile(r'1.[0-9]+')
+ ARTICLE_HREF_PATTERN = re.compile(r'''^(http:\/\/www\.haaretz\.co\.il)?/((news|opinions|magazine|captain)/[a-zA-Z0-9\-\/]*(\.premium-)?)?1\.\d+(#article_comments)?$''')
+ ARTICLE_ID_PATTERN = re.compile(r'1\.\d+')
ARTICLE_MODEL = HaaretzArticle
IMAGE_MODEL = HaaretzImage
diff --git a/newsdiff/core/tests/tests.py b/newsdiff/core/tests/tests.py
index 6f91aad..b30b143 100644
--- a/newsdiff/core/tests/tests.py
+++ b/newsdiff/core/tests/tests.py
@@ -26,10 +26,11 @@ class HaaretzParsingTestCase(TestCase):
def test_parse_article(self):
article_id = '1.2198200'
+ article_url = '{}/{}'.format(self.parser.BASE_URL, article_id)
soup = self._get_soup('{}.html'.format(article_id))
- self.parser.parse_article(article_id, soup)
+ self.parser.parse_article(article_url, soup)
article = HaaretzArticle.objects.get(haaretz_id=article_id)
- self.assertEqual(article.url, 'http://www.haaretz.co.il/{}'.format(article_id))
+ self.assertEqual(article.url, article_url)
images = article.images
self.assertEqual(images.count(), 2)