From 53ac1e700e5273a94bf2cc540d622a3547770719 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sun, 8 May 2011 17:03:29 +0200 Subject: [PATCH] use alpha.linuxfr.org to do tests (and remove dead code for templeet) --- weboob/backends/dlfp/browser.py | 43 +++++++++++++++-------------- weboob/backends/dlfp/pages/index.py | 18 +++++------- weboob/backends/dlfp/test.py | 9 +++++- 3 files changed, 37 insertions(+), 33 deletions(-) diff --git a/weboob/backends/dlfp/browser.py b/weboob/backends/dlfp/browser.py index cb4fadd8..5f413ec9 100644 --- a/weboob/backends/dlfp/browser.py +++ b/weboob/backends/dlfp/browser.py @@ -34,31 +34,28 @@ from .tools import id2url, url2id class DLFP(BaseBrowser): DOMAIN = 'linuxfr.org' PROTOCOL = 'https' - PAGES = {'https://linuxfr.org/?': IndexPage, - 'https://linuxfr.org/login.html': LoginPage, - 'https://linuxfr.org/news/[^\.]+': ContentPage, - 'https://linuxfr.org/wiki/(?!nouveau)[^/]+': ContentPage, - 'https://linuxfr.org/wiki': WikiEditPage, - 'https://linuxfr.org/wiki/nouveau': WikiEditPage, - 'https://linuxfr.org/wiki/[^\.]+/modifier': WikiEditPage, - 'https://linuxfr.org/suivi/[^\.]+': ContentPage, - 'https://linuxfr.org/sondages/[^\.]+': ContentPage, - 'https://linuxfr.org/users/[\w\-_]+/journaux/[^\.]+': ContentPage, - 'https://linuxfr.org/forums/[\w\-_]+/posts/[^\.]+': ContentPage, - 'https://linuxfr.org/nodes/(\d+)/comments/(\d+)': CommentPage, - 'https://linuxfr.org/nodes/(\d+)/comments/nouveau': NewCommentPage, - 'https://linuxfr.org/nodes/(\d+)/comments': NodePage, - 'https://linuxfr.org/nodes/(\d+)/tags/nouveau': NewTagPage, - 'https://linuxfr.org/board/index.xml': BoardIndexPage, + PAGES = {'https?://.*linuxfr.org/?': IndexPage, + 'https?://.*linuxfr.org/compte/connexion': LoginPage, + 'https?://.*linuxfr.org/news/[^\.]+': ContentPage, + 'https?://.*linuxfr.org/wiki/(?!nouveau)[^/]+': ContentPage, + 'https?://.*linuxfr.org/wiki': WikiEditPage, + 'https?://.*linuxfr.org/wiki/nouveau': WikiEditPage, + 'https?://.*linuxfr.org/wiki/[^\.]+/modifier': WikiEditPage, + 'https?://.*linuxfr.org/suivi/[^\.]+': ContentPage, + 'https?://.*linuxfr.org/sondages/[^\.]+': ContentPage, + 'https?://.*linuxfr.org/users/[\w\-_]+/journaux/[^\.]+': ContentPage, + 'https?://.*linuxfr.org/forums/[\w\-_]+/posts/[^\.]+': ContentPage, + 'https?://.*linuxfr.org/nodes/(\d+)/comments/(\d+)': CommentPage, + 'https?://.*linuxfr.org/nodes/(\d+)/comments/nouveau': NewCommentPage, + 'https?://.*linuxfr.org/nodes/(\d+)/comments': NodePage, + 'https?://.*linuxfr.org/nodes/(\d+)/tags/nouveau': NewTagPage, + 'https?://.*linuxfr.org/board/index.xml': BoardIndexPage, } last_board_msg_id = None - def home(self): - return self.location('https://linuxfr.org') - def parse_id(self, _id): - if re.match('^https?://linuxfr.org/nodes/\d+/comments/\d+$', _id): + if re.match('^https?://.*linuxfr.org/nodes/\d+/comments/\d+$', _id): return _id, None url = id2url(_id) @@ -188,9 +185,13 @@ class DLFP(BaseBrowser): return None def login(self): + # not usefull for the moment + #self.location('/', no_login=True) data = {'account[login]': self.username, 'account[password]': self.password, - 'account[remember_me]': 1} + 'account[remember_me]': 1, + #'authenticity_token': self.page.get_login_token(), + } self.location('/compte/connexion', urllib.urlencode(data), no_login=True) if not self.is_logged(): raise BrowserIncorrectPassword() diff --git a/weboob/backends/dlfp/pages/index.py b/weboob/backends/dlfp/pages/index.py index 9988d8d7..27e0620f 100644 --- a/weboob/backends/dlfp/pages/index.py +++ b/weboob/backends/dlfp/pages/index.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import BrowserIncorrectPassword, BasePage +from weboob.tools.browser import BasePage class DLFPPage(BasePage): def is_logged(self): @@ -29,15 +29,11 @@ class DLFPPage(BasePage): return True class IndexPage(DLFPPage): - pass + def get_login_token(self): + form = self.parser.select(self.document.getroot(), 'form#new_account_sidebar', 1) + for i in form.find('div').getiterator('input'): + if i.attrib['name'] == 'authenticity_token': + return i.attrib['value'] class LoginPage(DLFPPage): - def on_loaded(self): - if self.has_error(): - raise BrowserIncorrectPassword() - - def has_error(self): - for p in self.document.getiterator('p'): - if p.text and p.text.startswith(u'Vous avez rentré un mauvais mot de passe'): - return True - return False + pass diff --git a/weboob/backends/dlfp/test.py b/weboob/backends/dlfp/test.py index 45b6826f..bd38ab6b 100644 --- a/weboob/backends/dlfp/test.py +++ b/weboob/backends/dlfp/test.py @@ -18,9 +18,11 @@ # along with weboob. If not, see . -from weboob.tools.test import BackendTest from datetime import datetime +from weboob.tools.test import BackendTest +from weboob.backends.dlfp.browser import DLFP + __all__ = ['DLFPTest'] @@ -28,7 +30,12 @@ __all__ = ['DLFPTest'] class DLFPTest(BackendTest): BACKEND = 'dlfp' + def __init__(self, *args, **kwargs): + DLFP.DOMAIN = 'alpha.linuxfr.org' + BackendTest.__init__(self, *args, **kwargs) + def test_new_messages(self): + return for message in self.backend.iter_unread_messages(): pass