From c1c9b39e9d8fa7563d1fb494ad6df7b00af0e40f Mon Sep 17 00:00:00 2001 From: Laurent Bachelier Date: Thu, 21 Apr 2011 22:21:17 +0200 Subject: [PATCH] paste* backends: Use the check_url decorator --- weboob/backends/pastealacon/browser.py | 3 ++- weboob/backends/pastealacon/test.py | 7 +++++++ weboob/backends/pastebin/browser.py | 3 ++- weboob/backends/pastebin/test.py | 4 ++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/weboob/backends/pastealacon/browser.py b/weboob/backends/pastealacon/browser.py index bc522015..aa5f7fd1 100644 --- a/weboob/backends/pastealacon/browser.py +++ b/weboob/backends/pastealacon/browser.py @@ -23,7 +23,7 @@ import re from weboob.tools.browser import BaseBrowser, BrowserUnavailable, BrowserHTTPNotFound from weboob.capabilities.paste import PasteNotFound -from weboob.tools.browser.decorators import id2url +from weboob.tools.browser.decorators import id2url, check_url from .pages import PastePage, CaptchaPage, PostPage from .paste import PastealaconPaste @@ -43,6 +43,7 @@ class PastealaconBrowser(BaseBrowser): BaseBrowser.__init__(self, *args, **kwargs) @id2url(PastealaconPaste.id2url) + @check_url(PASTE_URL) def get_paste(self, url): _id = re.match('^%s$' % self.PASTE_URL, url).groupdict()['id'] return PastealaconPaste(_id) diff --git a/weboob/backends/pastealacon/test.py b/weboob/backends/pastealacon/test.py index eedcea90..2f41a4b8 100644 --- a/weboob/backends/pastealacon/test.py +++ b/weboob/backends/pastealacon/test.py @@ -71,3 +71,10 @@ class PastealaconTest(BackendTest): # raw method p = self.backend.get_paste(_id) self.assertRaises(PasteNotFound, self.backend.fillobj, p, ['contents']) + + def test_checkurl(self): + # call with an URL we can't handle with this backend + assert self.backend.get_paste('http://pastebin.com/nJG9ZFG8') is None + # same even with correct domain (IDs are numeric) + assert self.backend.get_paste('http://pastealacon.com/nJG9ZFG8') is None + assert self.backend.get_paste('nJG9ZFG8') is None diff --git a/weboob/backends/pastebin/browser.py b/weboob/backends/pastebin/browser.py index 3d68ae67..5a60aaa0 100644 --- a/weboob/backends/pastebin/browser.py +++ b/weboob/backends/pastebin/browser.py @@ -19,7 +19,7 @@ from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound -from weboob.tools.browser.decorators import id2url +from weboob.tools.browser.decorators import id2url, check_url from weboob.capabilities.paste import PasteNotFound @@ -54,6 +54,7 @@ class PastebinBrowser(BaseBrowser): raise PasteNotFound() @id2url(PastebinPaste.id2url) + @check_url(PASTE_URL) def get_paste(self, url): _id = re.match('^%s$' % self.PASTE_URL, url).groupdict()['id'] return PastebinPaste(_id) diff --git a/weboob/backends/pastebin/test.py b/weboob/backends/pastebin/test.py index 6712201c..4a76c97d 100644 --- a/weboob/backends/pastebin/test.py +++ b/weboob/backends/pastebin/test.py @@ -69,3 +69,7 @@ class PastebinTest(BackendTest): # raw method p = self.backend.get_paste(_id) self.assertRaises(PasteNotFound, self.backend.fillobj, p, ['contents']) + + def test_checkurl(self): + # call with an URL we can't handle with this backend + assert self.backend.get_paste('http://pastealacon.com/1') is None