Commit 7cebcfeb authored by Arnaud Fontaine's avatar Arnaud Fontaine

ZODB Components: erp5_ui_test: Migrate Unit Tests.

parent a0d19fdd
......@@ -28,7 +28,7 @@
from test import pystone
from time import time
pystone.clock = time
from Products.ERP5Type.tests.testPerformance import TestPerformanceMixin
from erp5.component.test.testPerformance import TestPerformanceMixin
from Products.DCWorkflow.DCWorkflow import ValidationFailed
from Testing import ZopeTestCase
......
......@@ -43,9 +43,9 @@ class TestGUISecurity(ERP5TypeTestCase):
def getTitle(self):
return "Security Issues in GUI"
def loginAs(self, id='user'):
def loginAs(self, username='user'):
uf = self.getPortal().acl_users
user = uf.getUser(id).__of__(uf)
user = uf.getUser(username).__of__(uf)
newSecurityManager(None, user)
def stepCreateObjects(self, sequence = None, sequence_list = None, **kw):
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testGUIwithSecurity</string> </value>
</item>
<item>
<key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5Form.tests.testGUIwithSecurity</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testGUIwithSecurity</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Component</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -72,7 +72,7 @@ class TestListBox(ERP5TypeTestCase):
def afterSetUp(self):
self.login()
def login(self):
def login(self, *args, **kw):
uf = self.getPortal().acl_users
uf._doAddUser('seb', '', ['Manager'], [])
user = uf.getUserById('seb').__of__(uf)
......@@ -296,13 +296,13 @@ class TestListBox(ERP5TypeTestCase):
],)
foo_module = portal.foo_module
o = foo_module.newContent(title=u'\xe9lisa')
foo_module.newContent(title=u'\xe9lisa')
self.tic()
request = get_request()
request['here'] = portal.foo_module
try:
rendered = listbox.get_value('default', render_format='list', REQUEST=request)
listbox.get_value('default', render_format='list', REQUEST=request)
except UnicodeError, e:
self.fail('Rendering failed: %s' % e)
self.assertIn(u"http://example.com/?\xe9lisa", listbox.render(REQUEST=request))
......@@ -330,13 +330,13 @@ class TestListBox(ERP5TypeTestCase):
],)
foo_module = portal.foo_module
o = foo_module.newContent(title=u'\xe9lisa')
foo_module.newContent(title=u'\xe9lisa')
self.tic()
request = get_request()
request['here'] = portal.foo_module
try:
rendered = listbox.get_value('default', render_format='list', REQUEST=request)
listbox.get_value('default', render_format='list', REQUEST=request)
except UnicodeError, e:
self.fail('Rendering failed: %s' % e)
self.assertIn(u"http://example.com/?\xe9lisa", listbox.render(REQUEST=request))
......@@ -481,7 +481,7 @@ class TestListBox(ERP5TypeTestCase):
# Create an new empty object with a list property
foo_module = portal.foo_module
o = foo_module.newContent()
foo_module.newContent()
# Reindex
self.tic()
......@@ -566,7 +566,7 @@ class TestListBox(ERP5TypeTestCase):
# Create an new empty object with a list property
foo_module = portal.foo_module
o = foo_module.newContent()
foo_module.newContent()
# Reindex
self.tic()
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testListBox</string> </value>
</item>
<item>
<key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5Form.tests.testListBox</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testListBox</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Component</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -26,7 +26,6 @@
#
##############################################################################
import unittest
from time import time
import gc
import subprocess
......@@ -120,7 +119,6 @@ PROFILER = 'pprofile'
class TestPerformanceMixin(ERP5TypeTestCase, LogInterceptor):
def getBusinessTemplateList(self):
"""
Return the list of business templates.
......@@ -180,9 +178,7 @@ class TestPerformanceMixin(ERP5TypeTestCase, LogInterceptor):
gc.enable()
self.abort()
class TestPerformance(TestPerformanceMixin):
def getTitle(self):
return "Performance"
......@@ -195,7 +191,7 @@ class TestPerformance(TestPerformanceMixin):
gender = self.portal.portal_caches.clearAllCache()
self.tic()
def checkViewBarObject(self, min, max, prefix=None):
def checkViewBarObject(self, min_, max_, prefix=None):
# Some init to display form with some value
if prefix is None:
prefix = ''
......@@ -213,7 +209,7 @@ class TestPerformance(TestPerformanceMixin):
self.tic()
# Check performance
before_view = time()
for x in xrange(100):
for _ in xrange(100):
# XXX: Note that we don't clean TransactionVariable cache and REQUEST
# before each call to 'view' requests. In reality, they would be
# always empty at the beginning of such requests.
......@@ -224,14 +220,14 @@ class TestPerformance(TestPerformanceMixin):
after_view = time()
req_time = (after_view - before_view)/100.
print "%s time to view object form %.4f < %.4f < %.4f\n" % \
(prefix, min, req_time, max)
(prefix, min_, req_time, max_)
if PROFILE:
self.profile(bar.Bar_viewPerformance)
if DO_TEST:
self.assertTrue(min < req_time < max,
'%.4f < %.4f < %.4f' % (min, req_time, max))
self.assertTrue(min_ < req_time < max_,
'%.4f < %.4f < %.4f' % (min_, req_time, max_))
def test_00_viewBarObject(self, min=None, max=None):
def test_00_viewBarObject(self, min_=None, max_=None):
"""
Estimate average time to render object view
"""
......@@ -256,7 +252,7 @@ class TestPerformance(TestPerformanceMixin):
for i in xrange(10):
def add():
for x in xrange(100):
p = self.bar_module.newContent(portal_type='Bar',
self.bar_module.newContent(portal_type='Bar',
title='Bar Test',
quantity="%4d" %(x,))
before_add = time()
......@@ -274,7 +270,7 @@ class TestPerformance(TestPerformanceMixin):
after_tic = time()
gc.collect()
before_form = time()
for x in xrange(100):
for _ in xrange(100):
self.bar_module.BarModule_viewBarList()
after_form = time()
# store result
......@@ -321,7 +317,6 @@ class TestPerformance(TestPerformanceMixin):
MIN_TIC, tic_value, MAX_TIC))
i += 1
def test_viewProxyField(self):
# render a form with proxy fields: Foo_viewProxyField
foo = self.foo_module.newContent(
......@@ -337,7 +332,7 @@ class TestPerformance(TestPerformanceMixin):
self.tic()
# Check performance
before_view = time()
for x in xrange(100):
for _ in xrange(100):
foo.Foo_viewProxyField()
after_view = time()
req_time = (after_view - before_view)/100.
......@@ -368,7 +363,7 @@ class TestPerformance(TestPerformanceMixin):
self.tic()
# Check performance
before_view = time()
for x in xrange(100):
for _ in xrange(100):
foo.Foo_viewPerformance()
after_view = time()
req_time = (after_view - before_view)/100.
......@@ -387,10 +382,9 @@ class TestPerformance(TestPerformanceMixin):
req_time,
MAX_OBJECT_MANY_LINES_VIEW))
class TestPropertyPerformance(TestPerformanceMixin):
def afterSetUp(self):
super(TestPerformanceMixin, self).afterSetUp()
super(TestPerformanceMixin, self).afterSetUp() # pylint: disable=bad-super-call
self.foo = self.portal.foo_module.newContent(
portal_type='Foo',
title='Foo Test',
......@@ -433,27 +427,27 @@ class TestPropertyPerformance(TestPerformanceMixin):
self.assertRaises(Unauthorized, getProperty, 'protected_property')
@self._benchmark(100000, 0.0001, 1)
def getPropertyWithRestrictedPropertyRefused(_):
def getPropertyWithRestrictedPropertyRefused(_): # pylint: disable=unused-variable
getProperty('protected_property', checked_permission='Access contents information')
def test_getProperty_protected_property_allowed(self):
getProperty = self.foo.getProperty
self.login()
@self._benchmark(100000, 0.0001, 1)
def getPropertyWithRestrictedPropertyAllowed(_):
def getPropertyWithRestrictedPropertyAllowed(_): # pylint: disable=unused-variable
getProperty('protected_property', checked_permission='Access contents information')
def test_getProperty_simple_property(self):
getProperty = self.foo.getProperty
@self._benchmark(100000, 0.0001, 1)
def getPropertyWithSimpleProperty(_):
def getPropertyWithSimpleProperty(_): # pylint: disable=unused-variable
getProperty('title', checked_permission='Access contents information')
def test_edit_restricted_properties(self):
_edit = self.foo.edit
self.login()
@self._benchmark(10000, 0.0001, 1)
def edit(i):
def edit(i): # pylint: disable=unused-variable
_edit(
title=str(i),
protected_property=str(i)
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testPerformance</string> </value>
</item>
<item>
<key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5Type.tests.testPerformance</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testPerformance</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Component</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -60,7 +60,7 @@ class TestPlanningBox(ERP5TypeTestCase):
def afterSetUp(self):
self.login()
def login(self):
def login(self, *args, **kw):
uf = self.getPortal().acl_users
uf._doAddUser('seb', '', ['Manager'], [])
user = uf.getUserById('seb').__of__(uf)
......@@ -125,7 +125,7 @@ class TestPlanningBox(ERP5TypeTestCase):
self.assertEqual(sec_axis_info['bound_start'], today)
self.assertEqual(sec_axis_info['bound_stop'], today+1)
for tree_list, activity_list,stat in basic.report_group_list:
for _, activity_list, _ in basic.report_group_list:
self.assertEqual(len(activity_list), 1)
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testPlanningBox</string> </value>
</item>
<item>
<key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5Form.tests.testPlanningBox</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testPlanningBox</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Component</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
test.erp5.testGUIwithSecurity
test.erp5.testListBox
test.erp5.testPerformance
test.erp5.testPlanningBox
test.erp5.testRelationField
\ No newline at end of file
erp5_full_text_mroonga_catalog
erp5_core_proxy_field_legacy
erp5_base
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment