[Erp5-report] r45152 arnaud.fontaine - /erp5/trunk/utils/erp5.utils.test_browser/src/erp5/u...
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Apr 7 07:44:41 CEST 2011
Author: arnaud.fontaine
Date: Thu Apr 7 07:44:41 2011
New Revision: 45152
URL: http://svn.erp5.org?rev=45152&view=rev
Log:
Add stateful login() method which opens the login page
Modified:
erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py
Modified: erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py?rev=45152&r1=45151&r2=45152&view=diff
==============================================================================
--- erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py [utf8] (original)
+++ erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py [utf8] Thu Apr 7 07:44:41 2011
@@ -196,12 +196,11 @@ class Browser(ExtendedTestBrowser):
self._logger = logging.getLogger('erp5.utils.test_browser')
self._is_legacy_listbox = is_legacy_listbox
+ self._is_logged_in = False
super(Browser, self).__init__()
- # Open login page, then login with the given username and password
- self.open('login_form')
- self.mainForm.submitLogin()
+ self.login()
def open(self, url_or_path=None, data=None):
"""
@@ -219,6 +218,27 @@ class Browser(ExtendedTestBrowser):
self._logger.info("Opening url: " + absolute_url)
super(Browser, self).open(absolute_url, data)
+ def login(self, force=False):
+ """
+ Log in only if not already logged in unless explicitely specified
+ to do so.
+
+ @param force: Log in even if already logged in
+ @type force: bool
+ """
+ if force or not self._is_logged_in:
+ try:
+ url_before_login = self.url
+ except:
+ url_before_login = None
+
+ self.open('login_form')
+ self.mainForm.submitLogin()
+
+ # Go back to the page before trying to log in if any URL, or to
+ # the homepage otherwise
+ self.open(url_before_login)
+
def getCookieValue(self, name, default=None):
"""
Get the cookie value of the given cookie name.
@@ -675,6 +695,8 @@ class MainForm(Form):
if 'Logged In as' not in self.browser.contents:
raise LoginError
+ self.browser._is_logged_in = True
+
def submitSelectFavourite(self, label=None, value=None):
"""
Select and submit a favourite, given either by its label (such as
More information about the Erp5-report
mailing list