[Erp5-report] r41438 seb - /erp5/trunk/utils/erp5mechanize/test_suites/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Dec 15 06:57:15 CET 2010
Author: seb
Date: Wed Dec 15 06:57:15 2010
New Revision: 41438
URL: http://svn.erp5.org?rev=41438&view=rev
Log:
add two generic selenium tests that should work with
generic business templates
Added:
erp5/trunk/utils/erp5mechanize/test_suites/
erp5/trunk/utils/erp5mechanize/test_suites/createPerson.py
erp5/trunk/utils/erp5mechanize/test_suites/createTextDocument.py
Added: erp5/trunk/utils/erp5mechanize/test_suites/createPerson.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5mechanize/test_suites/createPerson.py?rev=41438&view=auto
==============================================================================
--- erp5/trunk/utils/erp5mechanize/test_suites/createPerson.py (added)
+++ erp5/trunk/utils/erp5mechanize/test_suites/createPerson.py [utf8] Wed Dec 15 06:57:15 2010
@@ -0,0 +1,74 @@
+from ERP5Mechanize import ERP5Mechanize, timeExecution
+from random import randint
+from time import sleep
+from ClientForm import ItemNotFoundError
+from urllib2 import HTTPError
+import sys
+
+def Predicate(value):
+ return 'german' in value
+
+def print_error(url, name, password, result, cookie):
+ import traceback
+ sys.stderr.write('-- %s (%s) %s %s --\n' % (url, cookie, name, password))
+ if len(result):
+ sys.stderr.write('Id of last successfull step : %s\n'\
+ % (repr(result[-1].getId()), ))
+ else:
+ sys.stderr.write('No step was successfull.')
+ traceback.print_exc()
+
+def run(lazyness, url, name, password):
+ def doSleep(min_sleep, max_sleep):
+ duration = randint(min_sleep, max_sleep) * lazyness
+ sleep(duration)
+ test = ERP5Mechanize(url)
+ result = []
+ try:
+ # Dummy login/logout to force generating todolists without impacting results.
+ test.doLogin(name=name, password=password)
+ test.doLogout()
+ result.append(timeExecution(id='Login', function=test.doLogin,
+ kw={'name': name, 'password': password}))
+ doSleep(1, 2)
+ result.append(timeExecution(id='Enter person_module',
+ function=test.doModuleMenu, kw={'value': 'person_module'}))
+ doSleep(1, 2)
+ result.append(timeExecution(id='Add Person', function=test.doActionMenu,
+ kw={'value': 'add Person'}))
+ doSleep(1, 2)
+ test.fillField('field_my_prefix', 'Person before')
+ test.fillField('field_my_career_subordination_title',
+ 'Performance reindexing')
+ test.fillSelectFieldByPredicate('field_my_nationality', Predicate)
+ test.fillField('field_my_description', 'test_hot reindexing')
+ result.append(timeExecution(id='Save check', function=test.doSave))
+ doSleep(1, 2)
+ test.fillField('field_my_prefix', 'Person after')
+ result.append(timeExecution(id='Save check 2', function=test.doSave))
+ doSleep(1, 2)
+ result.append(timeExecution(id='Add Telephone', function=test.doActionMenu,
+ kw={'value': 'add Telephone'}))
+ doSleep(1, 2)
+ test.fillField('field_my_title', 'Personal')
+ test.fillField('field_my_telephone_number', '0123456789')
+ doSleep(1, 2)
+ result.append(timeExecution(id='Save check 3', function=test.doSave))
+ doSleep(1, 2)
+ except ItemNotFoundError:
+ print_error(url, name, password, result, test.getCookie('MYCOOKIE',
+ '(no cookie found)'))
+ sys.stderr.write('Portal status message : %s\n'\
+ % (test.getPortalStatusMessage() or '(No portalStatusMessage)', ))
+ raise
+ except HTTPError, error:
+ print_error(url, name, password, result, test.getCookie('MYCOOKIE',
+ '(no cookie found)'))
+ sys.stderr.write('Error:\n%s\n' % (error, ))
+ raise
+ except:
+ print_error(url, name, password, result, test.getCookie('MYCOOKIE',
+ '(no cookie found)'))
+ raise
+ return result
+
Added: erp5/trunk/utils/erp5mechanize/test_suites/createTextDocument.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5mechanize/test_suites/createTextDocument.py?rev=41438&view=auto
==============================================================================
--- erp5/trunk/utils/erp5mechanize/test_suites/createTextDocument.py (added)
+++ erp5/trunk/utils/erp5mechanize/test_suites/createTextDocument.py [utf8] Wed Dec 15 06:57:15 2010
@@ -0,0 +1,68 @@
+from ERP5Mechanize import ERP5Mechanize, timeExecution
+from random import randint
+from time import sleep
+from ClientForm import ItemNotFoundError
+from urllib2 import HTTPError
+import sys
+
+def print_error(url, name, password, result, cookie):
+ import traceback
+ sys.stderr.write('-- %s (%s) %s %s --\n' % (url, cookie, name, password))
+ if len(result):
+ sys.stderr.write('Id of last successfull step : %s\n' % (repr(result[-1].getId()), ))
+ else:
+ sys.stderr.write('No step was successfull.')
+ traceback.print_exc()
+
+def run(lazyness, url, name, password):
+ def doSleep(min_sleep, max_sleep):
+ duration = randint(min_sleep, max_sleep) * lazyness
+ sleep(duration)
+ test = ERP5Mechanize(url)
+ result = []
+ if callable(check_reference):
+ check_reference = check_reference()
+ if callable(bank_account_reference):
+ bank_account_reference = bank_account_reference(name)
+ counter_predicate = counter_predicate_generator(name)
+ try:
+ # Dummy login/logout to force generating todolists without impacting results.
+ test.doLogin(name=name, password=password)
+ test.doLogout()
+
+ result.append(timeExecution(id='Login', function=test.doLogin, kw={'name': name, 'password': password}))
+ doSleep(2, 4)
+ result.append(timeExecution(id='Enter document_module', function=test.doModuleMenu, kw={'value': 'document_module'}))
+ doSleep(1, 2)
+ result.append(timeExecution(id='Add Text', function=test.doActionMenu, kw={'value': 'add Text'}))
+ doSleep(10, 15)
+ test.fillField('field_my_title', "Performance Bench")
+ test.fillField('field_my_short_title', "Bench")
+ test.fillField('field_my_language', "en")
+ test.fillField('field_my_description', "This is the description of this performance document")
+ result.append(timeExecution(id='Save check', function=test.doSave))
+ doSleep(1, 2)
+ result.append(timeExecution(id='Go to Position tab', function=test.gotoTab, kw={'value': 'CheckPayment_viewAccounting'}))
+ doSleep(2, 4)
+ test.fillField('field_my_title', 'blah')
+ result.append(timeExecution(id='Save check 2', function=test.doSave))
+ doSleep(2, 4)
+ result.append(timeExecution(id='Share', function=test.doWorkflowAction, kw={'value': 'share_action'}))
+ doSleep(2, 4)
+ if 'Paid' not in test.getFormulatorFieldValue('Publication State'):
+ sys.stderr.write('"Paid" not found in %s' % (test.getFormulatorFieldValue('Publication State'), ))
+ sys.stderr.write('Portal status message : %s\n' % (test.getPortalStatusMessage() or '(No portalStatusMessage)', ))
+ raise Exception, 'Text document not in shared state at the end.'
+ except ItemNotFoundError:
+ print_error(url, name, password, result, test.getCookie('MYCOOKIE', '(no cookie found)'))
+ sys.stderr.write('Portal status message : %s\n' % (test.getPortalStatusMessage() or '(No portalStatusMessage)', ))
+ raise
+ except HTTPError, error:
+ print_error(url, name, password, result, test.getCookie('MYCOOKIE', '(no cookie found)'))
+ sys.stderr.write('Error:\n%s\n' % (error, ))
+ raise
+ except:
+ print_error(url, name, password, result, test.getCookie('MYCOOKIE', '(no cookie found)'))
+ raise
+ return result
+
More information about the Erp5-report
mailing list