[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