Commit 5cb1418d authored by Arnaud Fontaine's avatar Arnaud Fontaine

Cosmetic changes and remove unused imports.

parent 5f42babc
...@@ -429,7 +429,7 @@ class BalanceTransaction(AccountingTransaction, Inventory): ...@@ -429,7 +429,7 @@ class BalanceTransaction(AccountingTransaction, Inventory):
return factory return factory
def _immediateReindexObject(self, **kw): def _immediateReindexObject(self, *args, **kw):
"""Reindexes the object. """Reindexes the object.
This is different indexing that the default Inventory indexing, because This is different indexing that the default Inventory indexing, because
we want to take into account that lines in this balance transaction to we want to take into account that lines in this balance transaction to
......
...@@ -26,7 +26,7 @@ section_region = section.getRegion() ...@@ -26,7 +26,7 @@ section_region = section.getRegion()
ledger = request.get("ledger", None) ledger = request.get("ledger", None)
if ledger is not None: if ledger is not None:
portal_categories = context.getPortalObject().portal_categories portal_categories = context.getPortalObject().portal_categories
if isinstance(ledger, list) or isinstance(ledger, tuple): if isinstance(ledger, (tuple, list)):
ledger_uid = [portal_categories.ledger.restrictedTraverse(item).getUid() for item in ledger] ledger_uid = [portal_categories.ledger.restrictedTraverse(item).getUid() for item in ledger]
else: else:
ledger_uid = portal_categories.ledger.restrictedTraverse(ledger).getUid() ledger_uid = portal_categories.ledger.restrictedTraverse(ledger).getUid()
......
...@@ -23,7 +23,7 @@ kw['where_expression'] = " section.portal_type = 'Organisation' " ...@@ -23,7 +23,7 @@ kw['where_expression'] = " section.portal_type = 'Organisation' "
ledger = kw.get('ledger', request.get("ledger", None)) ledger = kw.get('ledger', request.get("ledger", None))
if ledger is not None: if ledger is not None:
portal_categories = context.getPortalObject().portal_categories portal_categories = context.getPortalObject().portal_categories
if isinstance(ledger, list) or isinstance(ledger, tuple): if isinstance(ledger, (tuple, list)):
kw['ledger_uid'] = [portal_categories.ledger.restrictedTraverse(item).getUid() for item in ledger] kw['ledger_uid'] = [portal_categories.ledger.restrictedTraverse(item).getUid() for item in ledger]
else: else:
kw['ledger_uid'] = portal_categories.ledger.restrictedTraverse(ledger).getUid() kw['ledger_uid'] = portal_categories.ledger.restrictedTraverse(ledger).getUid()
......
...@@ -22,7 +22,7 @@ kw['where_expression'] = " section.portal_type = 'Organisation' " ...@@ -22,7 +22,7 @@ kw['where_expression'] = " section.portal_type = 'Organisation' "
ledger = kwd.get('ledger', request.get("ledger", None)) ledger = kwd.get('ledger', request.get("ledger", None))
if ledger is not None: if ledger is not None:
portal_categories = context.getPortalObject().portal_categories portal_categories = context.getPortalObject().portal_categories
if isinstance(ledger, list) or isinstance(ledger, tuple): if isinstance(ledger, (tuple, list)):
kw['ledger_uid'] = [portal_categories.ledger.restrictedTraverse(item).getUid() for item in ledger] kw['ledger_uid'] = [portal_categories.ledger.restrictedTraverse(item).getUid() for item in ledger]
else: else:
kw['ledger_uid'] = portal_categories.ledger.restrictedTraverse(ledger).getUid() kw['ledger_uid'] = portal_categories.ledger.restrictedTraverse(ledger).getUid()
......
...@@ -27,7 +27,7 @@ kw['where_expression'] = " section.portal_type = 'Organisation' " ...@@ -27,7 +27,7 @@ kw['where_expression'] = " section.portal_type = 'Organisation' "
ledger = kwd.get('ledger', request.get("ledger", None)) ledger = kwd.get('ledger', request.get("ledger", None))
if ledger is not None: if ledger is not None:
portal_categories = context.getPortalObject().portal_categories portal_categories = context.getPortalObject().portal_categories
if isinstance(ledger, list) or isinstance(ledger, tuple): if isinstance(ledger, (tuple, list)):
kw['ledger_uid'] = [portal_categories.ledger.restrictedTraverse(item).getUid() for item in ledger] kw['ledger_uid'] = [portal_categories.ledger.restrictedTraverse(item).getUid() for item in ledger]
else: else:
kw['ledger_uid'] = portal_categories.ledger.restrictedTraverse(ledger).getUid() kw['ledger_uid'] = portal_categories.ledger.restrictedTraverse(ledger).getUid()
...@@ -47,7 +47,7 @@ accounts_to_expand_by_tp = rec_cat.getAccountTypeRelatedValueList(**params) + \ ...@@ -47,7 +47,7 @@ accounts_to_expand_by_tp = rec_cat.getAccountTypeRelatedValueList(**params) + \
total_balance = 0.0 total_balance = 0.0
for account_gap_number in accounts: for account_gap_number in accounts:
# We get all acounts strict member of this GAP category # We get all accounts strict member of this GAP category
gap = context.restrictedTraverse('portal_categories/' + getURL(account_gap_number)) gap = context.restrictedTraverse('portal_categories/' + getURL(account_gap_number))
for account in gap.getGapRelatedValueList(portal_type='Account'): for account in gap.getGapRelatedValueList(portal_type='Account'):
......
...@@ -207,7 +207,7 @@ class CategoryBudgetVariation(BudgetVariation): ...@@ -207,7 +207,7 @@ class CategoryBudgetVariation(BudgetVariation):
security.declareProtected(Permissions.AccessContentsInformation, security.declareProtected(Permissions.AccessContentsInformation,
'getBudgetVariationRangeCategoryList') 'getBudgetVariationRangeCategoryList')
def getBudgetVariationRangeCategoryList(self, context): def getBudgetVariationRangeCategoryList(self, _):
"""Returns the Variation Range Category List that can be applied to this """Returns the Variation Range Category List that can be applied to this
budget. budget.
""" """
......
...@@ -15,6 +15,6 @@ for inventory in stool.getInventoryList( ...@@ -15,6 +15,6 @@ for inventory in stool.getInventoryList(
resource_list.append( resource_list.append(
(inventory.resource_relative_url, (inventory.resource_relative_url,
portal.portal_categories.restrictedTraverse( portal.portal_categories.restrictedTraverse(
inventory.resource_relative_url).getTitle())) inventory.resource_relative_url).getTranslatedTitle()))
return resource_list return resource_list
...@@ -101,7 +101,8 @@ class CertificateAuthorityTool(BaseTool): ...@@ -101,7 +101,8 @@ class CertificateAuthorityTool(BaseTool):
Raises CertificateAuthorityBusy""" Raises CertificateAuthorityBusy"""
if os.path.exists(self.lock): if os.path.exists(self.lock):
raise CertificateAuthorityBusy raise CertificateAuthorityBusy
open(self.lock, 'w').write('locked') with open(self.lock, 'w') as f:
f.write('locked')
def _unlockCertificateAuthority(self): def _unlockCertificateAuthority(self):
"""Checks lock and locks Certificate Authority tool""" """Checks lock and locks Certificate Authority tool"""
...@@ -190,7 +191,8 @@ class CertificateAuthorityTool(BaseTool): ...@@ -190,7 +191,8 @@ class CertificateAuthorityTool(BaseTool):
self._checkCertificateAuthority() self._checkCertificateAuthority()
self._lockCertificateAuthority() self._lockCertificateAuthority()
index = open(self.index).read().splitlines() with open(self.index) as f:
index = f.read().splitlines()
valid_line_list = [q for q in index if q.startswith('V') and valid_line_list = [q for q in index if q.startswith('V') and
('CN=%s/' % common_name in q)] ('CN=%s/' % common_name in q)]
if len(valid_line_list) >= 1: if len(valid_line_list) >= 1:
...@@ -199,7 +201,8 @@ class CertificateAuthorityTool(BaseTool): ...@@ -199,7 +201,8 @@ class CertificateAuthorityTool(BaseTool):
'please revoke it before request a new one..' % common_name) 'please revoke it before request a new one..' % common_name)
try: try:
new_id = open(self.serial, 'r').read().strip().lower() with open(self.serial, 'r') as f:
new_id = f.read().strip().lower()
key = os.path.join(self.certificate_authority_path, 'private', key = os.path.join(self.certificate_authority_path, 'private',
new_id+'.key') new_id+'.key')
csr = os.path.join(self.certificate_authority_path, new_id + '.csr') csr = os.path.join(self.certificate_authority_path, new_id + '.csr')
...@@ -214,9 +217,13 @@ class CertificateAuthorityTool(BaseTool): ...@@ -214,9 +217,13 @@ class CertificateAuthorityTool(BaseTool):
'-batch', '-config', self.openssl_config, '-out', cert, '-infiles', '-batch', '-config', self.openssl_config, '-out', cert, '-infiles',
csr]) csr])
os.unlink(csr) os.unlink(csr)
with open(key) as f:
key = f.read()
with open(cert) as f:
cert = f.read()
return dict( return dict(
key=open(key).read(), key=key,
certificate=open(cert).read(), certificate=cert,
id=new_id, id=new_id,
common_name=common_name) common_name=common_name)
except Exception: except Exception:
...@@ -240,7 +247,8 @@ class CertificateAuthorityTool(BaseTool): ...@@ -240,7 +247,8 @@ class CertificateAuthorityTool(BaseTool):
self._checkCertificateAuthority() self._checkCertificateAuthority()
self._lockCertificateAuthority() self._lockCertificateAuthority()
try: try:
new_id = open(self.crl, 'r').read().strip().lower() with open(self.crl, 'r') as f:
new_id = f.read().strip().lower()
crl_path = os.path.join(self.certificate_authority_path, 'crl') crl_path = os.path.join(self.certificate_authority_path, 'crl')
crl = os.path.join(crl_path, new_id + '.crl') crl = os.path.join(crl_path, new_id + '.crl')
cert = os.path.join(self.certificate_authority_path, 'certs', cert = os.path.join(self.certificate_authority_path, 'certs',
...@@ -258,7 +266,9 @@ class CertificateAuthorityTool(BaseTool): ...@@ -258,7 +266,9 @@ class CertificateAuthorityTool(BaseTool):
alias += str(len(glob.glob(alias + '*'))) alias += str(len(glob.glob(alias + '*')))
created.append(alias) created.append(alias)
os.symlink(os.path.basename(crl), alias) os.symlink(os.path.basename(crl), alias)
return dict(crl=open(crl).read()) with open(crl) as f:
crl = f.read()
return dict(crl=crl)
except Exception: except Exception:
e = sys.exc_info() e = sys.exc_info()
try: try:
...@@ -276,7 +286,8 @@ class CertificateAuthorityTool(BaseTool): ...@@ -276,7 +286,8 @@ class CertificateAuthorityTool(BaseTool):
self._unlockCertificateAuthority() self._unlockCertificateAuthority()
def _getValidSerial(self, common_name): def _getValidSerial(self, common_name):
index = open(self.index).read().splitlines() with open(self.index) as f:
index = f.read().splitlines()
valid_line_list = [q for q in index if q.startswith('V') and valid_line_list = [q for q in index if q.startswith('V') and
('CN=%s/' % common_name in q)] ('CN=%s/' % common_name in q)]
if len(valid_line_list) < 1: if len(valid_line_list) < 1:
......
...@@ -346,8 +346,8 @@ class BusinessConfiguration(Item): ...@@ -346,8 +346,8 @@ class BusinessConfiguration(Item):
## we have already created configuration save for this state ## we have already created configuration save for this state
## so remove from it already existing configuration items ## so remove from it already existing configuration items
if configuration_save != self: # don't delete ourselves if configuration_save != self: # don't delete ourselves
existing_conf_items = configuration_save.objectIds() existing_conf_items = list(configuration_save.objectIds())
existing_conf_items = map(None, existing_conf_items) if existing_conf_items:
configuration_save.manage_delObjects(existing_conf_items) configuration_save.manage_delObjects(existing_conf_items)
modified_form_kw = {} modified_form_kw = {}
......
############################################################################## ##############################################################################
# coding: utf-8
# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved. # Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
# Rafael Monnerat <rafael@nexedi.com> # Rafael Monnerat <rafael@nexedi.com>
# Ivan Tyagov <ivan@nexedi.com> # Ivan Tyagov <ivan@nexedi.com>
......
password_confirm = request.get('field_your_password_confirm', None) password_confirm = request.get('field_your_password_confirm', None)
if editor.encode('ascii', 'ignore') != editor:
return False
return password_confirm == editor return password_confirm == editor
...@@ -348,7 +348,7 @@ def test_suite(): ...@@ -348,7 +348,7 @@ def test_suite():
suite.addTest(unittest.makeSuite(TestTimeZoneContext)) suite.addTest(unittest.makeSuite(TestTimeZoneContext))
suite.addTest(unittest.makeSuite(TestDateTimePatch)) suite.addTest(unittest.makeSuite(TestDateTimePatch))
# also run original tests from DateTime module # also run original tests from DateTime module BBB ZOPE2
# pylint:disable=no-name-in-module # pylint:disable=no-name-in-module
try: try:
import DateTime.tests.testDateTime as test_datetime import DateTime.tests.testDateTime as test_datetime
......
...@@ -4077,7 +4077,8 @@ VALUES ...@@ -4077,7 +4077,8 @@ VALUES
def doSomething(self, message_list): def doSomething(self, message_list):
r = [] r = []
for m in message_list: for m in message_list:
m.result = r.append(m.object.getPath()) r.append(m.object.getPath())
m.result = None
r.sort() r.sort()
group_method_call_list.append(r) group_method_call_list.append(r)
self.portal.portal_activities.__class__.doSomething = doSomething self.portal.portal_activities.__class__.doSomething = doSomething
......
...@@ -37,7 +37,7 @@ import email ...@@ -37,7 +37,7 @@ import email
from email.header import decode_header, make_header from email.header import decode_header, make_header
from email.utils import parseaddr from email.utils import parseaddr
# Copied from ERP5Type/patches/CMFMailIn.py # Copied from bt5/erp5_egov/TestTemplateItem/testEGovMixin.py
def decode_email(file_): def decode_email(file_):
# Prepare result # Prepare result
theMail = { theMail = {
......
...@@ -1605,7 +1605,7 @@ class TestCRMMailSend(BaseTestCRM): ...@@ -1605,7 +1605,7 @@ class TestCRMMailSend(BaseTestCRM):
def test_testValidatorForAttachmentField(self): def test_testValidatorForAttachmentField(self):
""" """
If an Event Type doesn't allow Emebedded Files in its sub portal types, If an Event Type doesn't allow Embedded Files in its sub portal types,
then the dialog should tell the user that attachment can't be uploaded then the dialog should tell the user that attachment can't be uploaded
""" """
# Add a document which will be attached. # Add a document which will be attached.
...@@ -1794,7 +1794,7 @@ class TestCRMMailSend(BaseTestCRM): ...@@ -1794,7 +1794,7 @@ class TestCRMMailSend(BaseTestCRM):
def test_cloneEvent(self): def test_cloneEvent(self):
""" """
All events uses after script and interaciton All events uses after script and interaction
workflow add a test for clone workflow add a test for clone
""" """
# XXX in the case of title, getTitle ignores the title attribute, # XXX in the case of title, getTitle ignores the title attribute,
...@@ -1827,7 +1827,7 @@ class TestCRMMailSend(BaseTestCRM): ...@@ -1827,7 +1827,7 @@ class TestCRMMailSend(BaseTestCRM):
def test_cloneTicketAndEventList(self): def test_cloneTicketAndEventList(self):
""" """
All events uses after script and interaciton All events uses after script and interaction
workflow add a test for clone workflow add a test for clone
""" """
portal = self.portal portal = self.portal
......
...@@ -150,12 +150,10 @@ class TestEditorField(ERP5TypeTestCase, ZopeTestCase.Functional): ...@@ -150,12 +150,10 @@ class TestEditorField(ERP5TypeTestCase, ZopeTestCase.Functional):
if html_text.find(match_string1) == -1: if html_text.find(match_string1) == -1:
print(html_text) print(html_text)
print(match_string1) print(match_string1)
import pdb; pdb.set_trace()
return False return False
if html_text.find(match_string2) == -1: if html_text.find(match_string2) == -1:
print(html_text) print(html_text)
print(match_string2) print(match_string2)
import pdb; pdb.set_trace()
return False return False
return True return True
......
...@@ -105,8 +105,6 @@ def customScript(script_id, script_param, script_code): ...@@ -105,8 +105,6 @@ def customScript(script_id, script_param, script_code):
class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional): class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
"""Test for erp5_web business template. """Test for erp5_web business template.
""" """
run_all_test = 1
quiet = 0
website_id = 'test' website_id = 'test'
def getTitle(self): def getTitle(self):
...@@ -214,28 +212,24 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional): ...@@ -214,28 +212,24 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
return webpage_list return webpage_list
def test_01_WebPageVersioning(self, quiet=quiet, run=run_all_test): def test_01_WebPageVersioning(self):
""" """
Simple Case of showing the proper most recent public Web Page based on Simple Case of showing the proper most recent public Web Page based on
(language, version) (language, version)
""" """
if not run: return
if not quiet:
message = '\ntest_01_WebPageVersioning'
ZopeTestCase._print(message)
portal = self.getPortal() portal = self.getPortal()
self.setupWebSite() self.setupWebSite()
websection = self.setupWebSection() websection = self.setupWebSection()
page_reference = 'default-webpage-versionning' page_reference = 'default-webpage-versionning'
self.setupWebSitePages(prefix = page_reference) self.setupWebSitePages(prefix=page_reference)
# set default web page for section # set default web page for section
found_by_reference = portal.portal_catalog(reference = page_reference, found_by_reference = portal.portal_catalog(reference=page_reference,
language = 'en', language='en',
portal_type = 'Web Page') portal_type='Web Page')
en_01 = found_by_reference[0].getObject() en_01 = found_by_reference[0].getObject()
# set it as default web page for section # set it as default web page for section
websection.edit(categories_list = ['aggregate/%s' %en_01.getRelativeUrl(),]) websection.edit(categories_list=['aggregate/%s' % en_01.getRelativeUrl(),])
self.assertEqual([en_01.getReference(),], self.assertEqual([en_01.getReference(),],
websection.getAggregateReferenceList()) websection.getAggregateReferenceList())
...@@ -260,15 +254,11 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional): ...@@ -260,15 +254,11 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self.assertEqual('0.2', default_document.getVersion()) self.assertEqual('0.2', default_document.getVersion())
self.assertEqual('published', default_document.getValidationState()) self.assertEqual('published', default_document.getValidationState())
def test_02_WebSectionAuthorizationForced(self, quiet=quiet, run=run_all_test): def test_02_WebSectionAuthorizationForced(self):
""" Check that when a document is requested within a Web Section we have a chance to """ Check that when a document is requested within a Web Section we have a chance to
require user to login. require user to login.
Whether or not an user will login is controlled by a property on Web Section (authorization_forced). Whether or not an user will login is controlled by a property on Web Section (authorization_forced).
""" """
if not run: return
if not quiet:
message = '\ntest_02_WebSectionAuthorizationForced'
ZopeTestCase._print(message)
request = self.app.REQUEST request = self.app.REQUEST
website = self.setupWebSite() website = self.setupWebSite()
websection = self.setupWebSection() websection = self.setupWebSection()
...@@ -304,25 +294,19 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional): ...@@ -304,25 +294,19 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self.logout() self.logout()
self.assertRaises(Unauthorized, websection._getExtensibleContent, request, document_reference) self.assertRaises(Unauthorized, websection._getExtensibleContent, request, document_reference)
def test_03_LatestContent(self, quiet=quiet, run=run_all_test): def test_03_LatestContent(self):
""" Test latest content for a Web Section. Test different use case like languaeg, workflow state. """ Test latest content for a Web Section. Test different use case like languaeg, workflow state.
""" """
if not run: return
if not quiet:
message = '\ntest_03_LatestContent'
ZopeTestCase._print(message)
portal = self.getPortal() portal = self.getPortal()
self.setupWebSite() self.setupWebSite()
websection = self.setupWebSection() websection = self.setupWebSection()
portal_categories = portal.portal_categories portal_categories = portal.portal_categories
publication_section_category_id_list = ['documentation', 'administration'] publication_section_category_id_list = ['documentation', 'administration']
for category_id in publication_section_category_id_list: for category_id in publication_section_category_id_list:
portal_categories.publication_section.newContent(portal_type = 'Category', portal_categories.publication_section.newContent(portal_type='Category', id=category_id)
id = category_id) # set predicate on web section using 'publication_section'
#set predicate on web section using 'publication_section' websection.edit(membership_criterion_base_category=['publication_section'],
websection.edit(membership_criterion_base_category = ['publication_section'], membership_criterion_category=['publication_section/%s' % publication_section_category_id_list[0]])
membership_criterion_category=['publication_section/%s'
%publication_section_category_id_list[0]])
self.tic() self.tic()
self.assertEqual(0, len(websection.getDocumentValueList())) self.assertEqual(0, len(websection.getDocumentValueList()))
...@@ -355,15 +339,11 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional): ...@@ -355,15 +339,11 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self.assertEqual(1, len(websection.getDocumentValueList())) self.assertEqual(1, len(websection.getDocumentValueList()))
self.assertEqual(web_page_en, websection.getDocumentValueList()[0].getObject()) self.assertEqual(web_page_en, websection.getDocumentValueList()[0].getObject())
def test_04_WebSectionAuthorizationForcedForDefaultDocument(self, quiet=quiet, run=run_all_test): def test_04_WebSectionAuthorizationForcedForDefaultDocument(self):
""" Check that when a Web Section contains a default document not accessible by user we have a chance to """ Check that when a Web Section contains a default document not accessible by user we have a chance to
require user to login. require user to login.
Whether or not an user will login is controlled by a property on Web Section (authorization_forced). Whether or not an user will login is controlled by a property on Web Section (authorization_forced).
""" """
if not run: return
if not quiet:
message = '\ntest_04_WebSectionAuthorizationForcedForDefaultDocument'
ZopeTestCase._print(message)
self.setupWebSite() self.setupWebSite()
websection = self.setupWebSection() websection = self.setupWebSection()
web_page_reference = 'default-document-reference' web_page_reference = 'default-document-reference'
...@@ -414,15 +394,11 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional): ...@@ -414,15 +394,11 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self.commit() self.commit()
self.assertEqual(5, len(websection.getDocumentValueList(limit=5))) self.assertEqual(5, len(websection.getDocumentValueList(limit=5)))
def test_05_deadProxyFields(self, quiet=quiet, run=run_all_test): def test_05_deadProxyFields(self):
""" """
check that all proxy fields defined in business templates have a valid check that all proxy fields defined in business templates have a valid
target target
""" """
if not run: return
if not quiet:
message = '\ntest_05_deadProxyFields'
ZopeTestCase._print(message)
skins_tool = self.portal.portal_skins skins_tool = self.portal.portal_skins
for field_path, field in skins_tool.ZopeFind( for field_path, field in skins_tool.ZopeFind(
skins_tool, obj_metatypes=['ProxyField'], search_sub=1): skins_tool, obj_metatypes=['ProxyField'], search_sub=1):
...@@ -936,11 +912,9 @@ return True ...@@ -936,11 +912,9 @@ return True
url at the url of the image tag. ie: url at the url of the image tag. ie:
<image xlink:href="http://www.erp5.com/user-XXX-XXX" <image xlink:href="http://www.erp5.com/user-XXX-XXX"
""" """
portal = self.portal background_image = self.portal.image_module.newContent(
module = portal.getDefaultModule(portal_type=portal_type) portal_type='Image',
upload_file = self.makeFileUpload('user-TESTSVG-BACKGROUND-IMAGE.png') file=self.makeFileUpload('user-TESTSVG-BACKGROUND-IMAGE.png'),
background_image = module.newContent(portal_type=portal_type,
file=upload_file,
reference="NXD-BACKGROUND") reference="NXD-BACKGROUND")
background_image.publish() background_image.publish()
self.tic() self.tic()
......
...@@ -865,7 +865,7 @@ class TestTemplateTool(ERP5TypeTestCase): ...@@ -865,7 +865,7 @@ class TestTemplateTool(ERP5TypeTestCase):
erp5_test = self.portal.portal_skins['erp5_test'] erp5_test = self.portal.portal_skins['erp5_test']
self.assertTrue(erp5_test.hasObject('test_file')) self.assertTrue(erp5_test.hasObject('test_file'))
def test_ownerhsip(self): def test_ownership(self):
self.assertEqual( self.assertEqual(
self.portal.portal_skins.erp5_core.getOwnerTuple(), self.portal.portal_skins.erp5_core.getOwnerTuple(),
([self.portal.getId(), 'acl_users'], 'System Processes'), ([self.portal.getId(), 'acl_users'], 'System Processes'),
......
...@@ -1725,7 +1725,7 @@ return context.getPortalObject().foo_module.contentValues() ...@@ -1725,7 +1725,7 @@ return context.getPortalObject().foo_module.contentValues()
form_relative_url='portal_skins/erp5_ui_test/FooModule_viewFooList/listbox' form_relative_url='portal_skins/erp5_ui_test/FooModule_viewFooList/listbox'
) )
result_dict = json.loads(result) result_dict = json.loads(result)
#editalble creation date is defined at proxy form # editable creation date is defined at proxy form
# Test the listbox_uid parameter # Test the listbox_uid parameter
self.assertEqual(result_dict['_embedded']['contents'][0]['listbox_uid:list']['key'], 'listbox_uid:list') self.assertEqual(result_dict['_embedded']['contents'][0]['listbox_uid:list']['key'], 'listbox_uid:list')
self.assertEqual(result_dict['_embedded']['contents'][0]['id']['field_gadget_param']['type'], 'StringField') self.assertEqual(result_dict['_embedded']['contents'][0]['id']['field_gadget_param']['type'], 'StringField')
...@@ -3258,10 +3258,10 @@ class TestERP5ODS(ERP5HALJSONStyleSkinsMixin): ...@@ -3258,10 +3258,10 @@ class TestERP5ODS(ERP5HALJSONStyleSkinsMixin):
self.assertEqual(fake_request.RESPONSE.getHeader('Content-Type'), 'text/csv') self.assertEqual(fake_request.RESPONSE.getHeader('Content-Type'), 'text/csv')
else: else:
self.assertEqual(fake_request.RESPONSE.getHeader('Content-Type'), 'text/csv; charset=utf-8') self.assertEqual(fake_request.RESPONSE.getHeader('Content-Type'), 'text/csv; charset=utf-8')
self.assertTrue('foook1' in result, result) self.assertIn('foook1', result)
self.assertTrue('foook2' in result, result) self.assertIn('foook2', result)
self.assertTrue('foonotok' not in result, result) self.assertNotIn('foonotok', result)
# Check one of the field name # Check one of the field name
self.assertTrue('Read-Only Quantity' in result, result) self.assertIn('Read-Only Quantity', result)
# Ensure it is not the list mode rendering # Ensure it is not the list mode rendering
self.assertTrue(len(result.split('\n')) > 50, result) self.assertTrue(len(result.split('\n')) > 50, result)
...@@ -602,11 +602,11 @@ class TestKM(TestKMMixIn): ...@@ -602,11 +602,11 @@ class TestKM(TestKMMixIn):
# add some documents to this web section # add some documents to this web section
presentation = portal.document_module.newContent( presentation = portal.document_module.newContent(
title='My presentation', title='My presentation',
portal_type = 'Presentation', portal_type='Presentation',
reference = 'Presentation-12456_', reference='Presentation-12456_',
version='001', version='001',
language='en', language='en',
publication_section_list = publication_section_category_id_list[:1]) publication_section_list=publication_section_category_id_list[:1])
presentation.publish() presentation.publish()
self.tic() self.tic()
self.changeSkin('KM') self.changeSkin('KM')
...@@ -741,7 +741,7 @@ class TestKM(TestKMMixIn): ...@@ -741,7 +741,7 @@ class TestKM(TestKMMixIn):
portal = self.getPortal() portal = self.getPortal()
portal_gadgets = portal.portal_gadgets portal_gadgets = portal.portal_gadgets
url = '%s/ERP5Site_viewHomeAreaRenderer?gadget_mode=web_front' %self.web_site_url url = '%s/ERP5Site_viewHomeAreaRenderer?gadget_mode=web_front' % self.web_site_url
response = self.publish(url, self.auth) response = self.publish(url, self.auth)
self.assertIn(str2bytes(self.web_front_knowledge_pad.getTitle()), response.getBody()) self.assertIn(str2bytes(self.web_front_knowledge_pad.getTitle()), response.getBody())
......
...@@ -69,13 +69,16 @@ class PALOETLConnection(XMLObject): ...@@ -69,13 +69,16 @@ class PALOETLConnection(XMLObject):
security = ClassSecurityInfo() security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation) security.declareObjectProtected(Permissions.AccessContentsInformation)
_ignore_ssl_certificate_check = True
_fix_service_location = True
def _getSudsClient(self): def _getSudsClient(self):
# maybe client can be cached as a _v_ attribute. For now, we do not care about performance. # maybe client can be cached as a _v_ attribute. For now, we do not care about performance.
if "ignore ssl certificate check": if self._ignore_ssl_certificate_check:
client = suds.client.Client(self.getUrlString(), transport=HTTPAuthenticatedUnverifiedSSL()) client = suds.client.Client(self.getUrlString(), transport=HTTPAuthenticatedUnverifiedSSL())
else: else:
client = suds.client.Client(self.getUrlString()) client = suds.client.Client(self.getUrlString())
if "fix service location": if self._fix_service_location:
# XXX The axis2 generated webservice only supports http on port 8080. # XXX The axis2 generated webservice only supports http on port 8080.
# It seems to be using an old and buggy version of axis2. # It seems to be using an old and buggy version of axis2.
# Easiest workaround is to force the port (in WSDL terminology) location. # Easiest workaround is to force the port (in WSDL terminology) location.
......
...@@ -28,7 +28,6 @@ try: ...@@ -28,7 +28,6 @@ try:
except ImportError: # BBB Zope2 except ImportError: # BBB Zope2
from Globals import package_home from Globals import package_home
import PIL.Image as PIL_Image import PIL.Image as PIL_Image
import thread
import random import random
import base64 import base64
from OFS.Folder import Folder from OFS.Folder import Folder
...@@ -176,7 +175,6 @@ class ZoomifyBase: ...@@ -176,7 +175,6 @@ class ZoomifyBase:
lr_y = ul_y + self.tileSize lr_y = ul_y + self.tileSize
else: else:
lr_y = self.originalHeight lr_y = self.originalHeight
print("Going to open image")
imageRow = image.crop([0, ul_y, self.originalWidth, lr_y]) imageRow = image.crop([0, ul_y, self.originalWidth, lr_y])
saveFilename = root + str(tier) + '-' + str(row) + ext saveFilename = root + str(tier) + '-' + str(row) + ext
if imageRow.mode != 'RGB': if imageRow.mode != 'RGB':
...@@ -192,7 +190,6 @@ class ZoomifyBase: ...@@ -192,7 +190,6 @@ class ZoomifyBase:
def processRowImage(self, tier=0, row=0): def processRowImage(self, tier=0, row=0):
""" for an image, create and save tiles """ """ for an image, create and save tiles """
print('*** processing tier: ' + str(tier) + ' row: ' + str(row))
tierWidth, tierHeight = self._v_scaleInfo[tier] tierWidth, tierHeight = self._v_scaleInfo[tier]
rowsForTier = tierHeight // self.tileSize rowsForTier = tierHeight // self.tileSize
if tierHeight % self.tileSize > 0: if tierHeight % self.tileSize > 0:
...@@ -333,7 +330,7 @@ class ZoomifyZopeProcessor(ZoomifyBase): ...@@ -333,7 +330,7 @@ class ZoomifyZopeProcessor(ZoomifyBase):
def openImage(self): def openImage(self):
""" load the image data """ """ load the image data """
return PIL_Image.open(self._v_imageObject.name) return PIL_Image.open(self._v_imageObject)
def createDefaultViewer(self): def createDefaultViewer(self):
""" add the default Zoomify viewer to the Zoomify metadata """ """ add the default Zoomify viewer to the Zoomify metadata """
......
#from Products.ERP5.Document.TileImageTransformed import TileImageTransformed
#from cStringIO import StringIO
portal = context.getPortalObject() portal = context.getPortalObject()
data = portal.restrictedTraverse("portal_skins/erp5_safeimage/img/image_test.jpg") data = portal.restrictedTraverse("portal_skins/erp5_safeimage/img/image_test.jpg")
print(data.data) print(data.data)
return printed return printed
...@@ -70,7 +70,6 @@ with ImmediateReindexContextManager() as immediate_reindex_context_manager: ...@@ -70,7 +70,6 @@ with ImmediateReindexContextManager() as immediate_reindex_context_manager:
line_variation_base_category_list = line_variation_base_category_dict.keys() line_variation_base_category_list = line_variation_base_category_dict.keys()
# construct new content (container_line) # construct new content (container_line)
resource_url = resource_url
new_container_line_id = str(container.generateNewId()) new_container_line_id = str(container.generateNewId())
container_line = container.newContent( container_line = container.newContent(
immediate_reindex=immediate_reindex_context_manager, immediate_reindex=immediate_reindex_context_manager,
......
...@@ -2839,11 +2839,11 @@ class TestOrder(TestOrderMixin, ERP5TypeTestCase): ...@@ -2839,11 +2839,11 @@ class TestOrder(TestOrderMixin, ERP5TypeTestCase):
portal_type='Organisation', title='Client', portal_type='Organisation', title='Client',
default_image_file=image) default_image_file=image)
from OFS.Image import Pdata from OFS.Image import Pdata
self.assertTrue(isinstance(client.getDefaultImageValue().data, Pdata)) self.assertIsInstance(client.getDefaultImageValue().data, Pdata)
vendor = self.portal.organisation_module.newContent( vendor = self.portal.organisation_module.newContent(
portal_type='Organisation', title='Vendor', portal_type='Organisation', title='Vendor',
default_image_file=image) default_image_file=image)
self.assertTrue(isinstance(vendor.getDefaultImageValue().data, Pdata)) self.assertIsInstance(vendor.getDefaultImageValue().data, Pdata)
order = self.portal.getDefaultModule(self.order_portal_type).newContent( order = self.portal.getDefaultModule(self.order_portal_type).newContent(
portal_type=self.order_portal_type, portal_type=self.order_portal_type,
specialise=self.business_process, specialise=self.business_process,
......
...@@ -1799,7 +1799,7 @@ class TestPackingList(TestPackingListMixin, ERP5TypeTestCase) : ...@@ -1799,7 +1799,7 @@ class TestPackingList(TestPackingListMixin, ERP5TypeTestCase) :
sale_packing_list2.getUid()))] sale_packing_list2.getUid()))]
self.assertEqual({self.default_quantity-4, self.default_quantity-3}, self.assertEqual({self.default_quantity-4, self.default_quantity-3},
set([x.getQuantity() for x in sale_packing_list1.getMovementList()])) set([x.getQuantity() for x in sale_packing_list1.getMovementList()]))
self.assertEqual({1, 1}, set([x.getQuantity() for x in sale_packing_list3.getMovementList()])) self.assertEqual({1}, set([x.getQuantity() for x in sale_packing_list3.getMovementList()]))
self.assertEqual("solved", sale_packing_list3.getCausalityState()) self.assertEqual("solved", sale_packing_list3.getCausalityState())
self.assertEqual("solved", sale_packing_list1.getCausalityState()) self.assertEqual("solved", sale_packing_list1.getCausalityState())
def getSolverProcessStateList(delivery): def getSolverProcessStateList(delivery):
...@@ -1811,7 +1811,7 @@ class TestPackingList(TestPackingListMixin, ERP5TypeTestCase) : ...@@ -1811,7 +1811,7 @@ class TestPackingList(TestPackingListMixin, ERP5TypeTestCase) :
self.assertEqual({self.default_quantity-4, self.default_quantity-3}, self.assertEqual({self.default_quantity-4, self.default_quantity-3},
set([x.getQuantity() for x in sale_packing_list1.getMovementList()])) set([x.getQuantity() for x in sale_packing_list1.getMovementList()]))
self.assertEqual({1, 2}, set([x.getQuantity() for x in sale_packing_list2.getMovementList()])) self.assertEqual({1, 2}, set([x.getQuantity() for x in sale_packing_list2.getMovementList()]))
self.assertEqual({2, 2}, set([x.getQuantity() for x in sale_packing_list3.getMovementList()])) self.assertEqual({2}, set([x.getQuantity() for x in sale_packing_list3.getMovementList()]))
self.assertEqual("solved", sale_packing_list1.getCausalityState()) self.assertEqual("solved", sale_packing_list1.getCausalityState())
self.assertEqual("solved", sale_packing_list2.getCausalityState()) self.assertEqual("solved", sale_packing_list2.getCausalityState())
self.assertEqual("solved", sale_packing_list3.getCausalityState()) self.assertEqual("solved", sale_packing_list3.getCausalityState())
...@@ -1822,7 +1822,7 @@ class TestPackingList(TestPackingListMixin, ERP5TypeTestCase) : ...@@ -1822,7 +1822,7 @@ class TestPackingList(TestPackingListMixin, ERP5TypeTestCase) :
self.assertEqual({self.default_quantity-5, self.default_quantity-4}, self.assertEqual({self.default_quantity-5, self.default_quantity-4},
set([x.getQuantity() for x in sale_packing_list1.getMovementList()])) set([x.getQuantity() for x in sale_packing_list1.getMovementList()]))
self.assertEqual({2, 3}, set([x.getQuantity() for x in sale_packing_list2.getMovementList()])) self.assertEqual({2, 3}, set([x.getQuantity() for x in sale_packing_list2.getMovementList()]))
self.assertEqual({2, 2}, set([x.getQuantity() for x in sale_packing_list3.getMovementList()])) self.assertEqual({2}, set([x.getQuantity() for x in sale_packing_list3.getMovementList()]))
self.assertEqual("solved", sale_packing_list1.getCausalityState()) self.assertEqual("solved", sale_packing_list1.getCausalityState())
self.assertEqual("solved", sale_packing_list2.getCausalityState()) self.assertEqual("solved", sale_packing_list2.getCausalityState())
self.assertEqual("solved", sale_packing_list3.getCausalityState()) self.assertEqual("solved", sale_packing_list3.getCausalityState())
...@@ -1837,7 +1837,7 @@ class TestPackingList(TestPackingListMixin, ERP5TypeTestCase) : ...@@ -1837,7 +1837,7 @@ class TestPackingList(TestPackingListMixin, ERP5TypeTestCase) :
self.assertEqual({self.default_quantity-6, self.default_quantity-5}, self.assertEqual({self.default_quantity-6, self.default_quantity-5},
set([x.getQuantity() for x in sale_packing_list1.getMovementList()])) set([x.getQuantity() for x in sale_packing_list1.getMovementList()]))
self.assertEqual({2, 3}, set([x.getQuantity() for x in sale_packing_list2.getMovementList()])) self.assertEqual({2, 3}, set([x.getQuantity() for x in sale_packing_list2.getMovementList()]))
self.assertEqual({3, 3}, set([x.getQuantity() for x in sale_packing_list3.getMovementList()])) self.assertEqual({3}, set([x.getQuantity() for x in sale_packing_list3.getMovementList()]))
self.assertEqual("solved", sale_packing_list1.getCausalityState()) self.assertEqual("solved", sale_packing_list1.getCausalityState())
self.assertEqual("solved", sale_packing_list2.getCausalityState()) self.assertEqual("solved", sale_packing_list2.getCausalityState())
self.assertEqual("solved", sale_packing_list3.getCausalityState()) self.assertEqual("solved", sale_packing_list3.getCausalityState())
......
...@@ -1412,6 +1412,7 @@ class TestResource(ERP5TypeTestCase): ...@@ -1412,6 +1412,7 @@ class TestResource(ERP5TypeTestCase):
self.assertEqual(resource.getInternalSupplyLineDestinationReference(), self.assertEqual(resource.getInternalSupplyLineDestinationReference(),
'test_destination_reference_on_internal_supply_line') 'test_destination_reference_on_internal_supply_line')
@expectedFailure
def testQuantityUnitOnMovement(self): def testQuantityUnitOnMovement(self):
"""Make sure that changing default quantity unit on resource does not """Make sure that changing default quantity unit on resource does not
affect to movement. affect to movement.
...@@ -1464,7 +1465,8 @@ class TestResource(ERP5TypeTestCase): ...@@ -1464,7 +1465,8 @@ class TestResource(ERP5TypeTestCase):
# Check existing movement again and make sure that quantity # Check existing movement again and make sure that quantity
# unit is not changed. # unit is not changed.
expectedFailure(self.assertEqual)( # XXX This is the expectedFailure
self.assertEqual(
sale_order_line.getQuantityUnitValue(), sale_order_line.getQuantityUnitValue(),
self.quantity_unit_gram) self.quantity_unit_gram)
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?num:int=1;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?num:int=1&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?num:int=1;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?num:int=1&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?num:int=1;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?num:int=1&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?num:int=1;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?num:int=1&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?num:int=1;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?num:int=1&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?num:int=1;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?num:int=1&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?num:int=1;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?num:int=1&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?start:int=3;num:int=7;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?start:int=3&amp;num:int=7&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked;field_domain_root_list=foo_category/foo_big_category%7CFoo%20and%20Big%20Category</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked&amp;field_domain_root_list=foo_category/foo_big_category%7CFoo%20and%20Big%20Category</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<!-- XXX bug compatibility; all columns must be set explicitly --> <!-- XXX bug compatibility; all columns must be set explicitly -->
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_all_columns=id%7CID%0Atitle%7CTitle%0Adelivery.quantity%7CQuantity;field_stat_method=portal_catalog</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_all_columns=id%7CID%0Atitle%7CTitle%0Adelivery.quantity%7CQuantity&amp;field_stat_method=portal_catalog</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<!-- XXX bug compatibility; all_columns are used for sortable columns. --> <!-- XXX bug compatibility; all_columns are used for sortable columns. -->
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_sort_columns=id%0Atitle;field_all_columns=id%0Atitle</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_sort_columns=id%0Atitle&amp;field_all_columns=id%0Atitle</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked;field_domain_root_list=foo_category%7CFoo%20Category</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked&amp;field_domain_root_list=foo_category%7CFoo%20Category</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
<!-- Click on report tree --> <!-- Click on report tree -->
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_report_tree=checked;field_report_root_list=foo_category%7CFoo%20Category%0Afoo_empty_category%7CFoo%20Empty%20Category</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_report_tree=checked&amp;field_report_root_list=foo_category%7CFoo%20Category%0Afoo_empty_category%7CFoo%20Empty%20Category</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked;field_domain_root_list=foo_category%7CFoo%20Category</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked&amp;field_domain_root_list=foo_category%7CFoo%20Category</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked;field_domain_root_list=parent_domain%7CParent</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked&amp;field_domain_root_list=parent_domain%7CParent</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked;field_domain_root_list=foo_domain%7CFoo%20Domain</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked&amp;field_domain_root_list=foo_domain%7CFoo%20Domain</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_report_tree=checked;field_report_root_list=foo_domain%7CFoo%20Domain</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_report_tree=checked&amp;field_report_root_list=foo_domain%7CFoo%20Domain</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<tal:block metal:use-macro="here/ListBoxZuite_CommonTemplate/macros/init" /> <tal:block metal:use-macro="here/ListBoxZuite_CommonTemplate/macros/init" />
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_meta_types=ERP5%20Delivery;field_portal_types=</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_meta_types=ERP5%20Delivery&amp;field_portal_types=</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -157,7 +157,7 @@ ...@@ -157,7 +157,7 @@
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_meta_types=ERP5%20Toto;field_portal_types=</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_meta_types=ERP5%20Toto&amp;field_portal_types=</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<tal:block metal:use-macro="here/ListBoxZuite_CommonTemplate/macros/init" /> <tal:block metal:use-macro="here/ListBoxZuite_CommonTemplate/macros/init" />
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_meta_types=;field_portal_types=Foo</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_meta_types=&amp;field_portal_types=Foo</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
</tal:block> </tal:block>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_meta_types=;field_portal_types=Toto</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_meta_types=&amp;field_portal_types=Toto</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -322,7 +322,7 @@ ...@@ -322,7 +322,7 @@
Don't forget to update the code below if listbox_zuite/testDomainTree change. --> Don't forget to update the code below if listbox_zuite/testDomainTree change. -->
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/0/Foo_viewRelationField/listbox/ListBox_setPropertyList?field_domain_tree=checked;field_domain_root_list=foo_category%7CFoo%20Category</td> <td>${base_url}/foo_module/0/Foo_viewRelationField/listbox/ListBox_setPropertyList?field_domain_tree=checked&amp;field_domain_root_list=foo_category%7CFoo%20Category</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_report_tree=checked;field_report_root_list=foo_category%7CFoo%20Category%0Afoo_empty_category%7CFoo%20Empty%20Category</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_report_tree=checked&amp;field_report_root_list=foo_category%7CFoo%20Category%0Afoo_empty_category%7CFoo%20Empty%20Category</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_stat_method=portal_catalog;field_report_tree=checked;field_report_root_list=foo_domain%7CFoo%20Domain</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_stat_method=portal_catalog&amp;field_report_tree=checked&amp;field_report_root_list=foo_domain%7CFoo%20Domain</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_stat_columns=id%7CFooModule_statId%0Atitle%7CFooModule_statTitle;field_stat_method=portal_catalog</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_stat_columns=id%7CFooModule_statId%0Atitle%7CFooModule_statTitle&amp;field_stat_method=portal_catalog</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked;field_domain_root_list=foo_category%7CFoo%20Category</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_domain_tree=checked&amp;field_domain_root_list=foo_category%7CFoo%20Category</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -187,7 +187,7 @@ ...@@ -187,7 +187,7 @@
</tr> </tr>
<tr> <tr>
<td>clickAndWait</td> <td>clickAndWait</td>
<td tal:content="python: '//div[@id=\'group_lane_%s\']//a' % (str((DateTime().day()/3)+1)) " ></td> <td tal:content="python: '//div[@id=\'group_lane_%s\']//a' % (str((DateTime().day() // 3) + 1)) " ></td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -202,7 +202,7 @@ ...@@ -202,7 +202,7 @@
</tr> </tr>
<tr> <tr>
<td>clickAndWait</td> <td>clickAndWait</td>
<td tal:content="python: '//div[@id=\'group_lane_%s\']//a' % (str(DateTime().dow()+1)) " ></td> <td tal:content="python: '//div[@id=\'group_lane_%s\']//a' % (str(DateTime().dow() + 1)) " ></td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -211,7 +211,7 @@ ...@@ -211,7 +211,7 @@
</tr> </tr>
<tr> <tr>
<td>clickAndWait</td> <td>clickAndWait</td>
<td tal:content="python: '//div[@id=\'group_lane_%s\']//a' % (str(DateTime().dow()+1)) " ></td> <td tal:content="python: '//div[@id=\'group_lane_%s\']//a' % (str(DateTime().dow() + 1))"></td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<tal:block metal:use-macro="here/ListBoxZuite_CommonTemplate/macros/init" /> <tal:block metal:use-macro="here/ListBoxZuite_CommonTemplate/macros/init" />
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?num:int=1;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?num:int=1&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/bar_module/FooModule_createObjects?num:int=3;portal_type=Bar</td> <td>${base_url}/bar_module/FooModule_createObjects?num:int=3&amp;portal_type=Bar</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -9,7 +9,7 @@ wtool = getToolByName(context, 'portal_workflow') ...@@ -9,7 +9,7 @@ wtool = getToolByName(context, 'portal_workflow')
result = 'OK' result = 'OK'
error_list = [] error_list = []
def assertEquals(a, b, msg=''): def assertEqual(a, b, msg=''):
if a != b: if a != b:
if msg: if msg:
error_list.append(msg) error_list.append(msg)
...@@ -17,25 +17,25 @@ def assertEquals(a, b, msg=''): ...@@ -17,25 +17,25 @@ def assertEquals(a, b, msg=''):
error_list.append('%r != %r' % (a, b)) error_list.append('%r != %r' % (a, b))
foo_2 = foo_module['2'] foo_2 = foo_module['2']
assertEquals(foo_2.getSimulationState(), 'validated', assertEqual(foo_2.getSimulationState(), 'validated',
'Foo 2 state is %s' % foo_2.getSimulationState()) 'Foo 2 state is %s' % foo_2.getSimulationState())
if not error_list: if not error_list:
assertEquals( assertEqual(
wtool.getInfoFor(foo_2, 'history', wf_id='foo_workflow')[-2]['comment'], wtool.getInfoFor(foo_2, 'history', wf_id='foo_workflow')[-2]['comment'],
'Comment !') 'Comment !')
assertEquals( assertEqual(
wtool.getInfoFor(foo_2, 'history', wf_id='foo_workflow')[-2]['custom_workflow_variable'], wtool.getInfoFor(foo_2, 'history', wf_id='foo_workflow')[-2]['custom_workflow_variable'],
'Custom Workflow Variable') 'Custom Workflow Variable')
foo_3 = foo_module['3'] foo_3 = foo_module['3']
assertEquals(foo_3.getSimulationState(), 'validated', assertEqual(foo_3.getSimulationState(), 'validated',
'Foo 3 state is %s' % foo_3.getSimulationState()) 'Foo 3 state is %s' % foo_3.getSimulationState())
if not error_list: if not error_list:
assertEquals( assertEqual(
wtool.getInfoFor(foo_3, 'history', wf_id='foo_workflow')[-2]['comment'], wtool.getInfoFor(foo_3, 'history', wf_id='foo_workflow')[-2]['comment'],
'Comment !') 'Comment !')
assertEquals( assertEqual(
wtool.getInfoFor(foo_2, 'history', wf_id='foo_workflow')[-2]['custom_workflow_variable'], wtool.getInfoFor(foo_2, 'history', wf_id='foo_workflow')[-2]['custom_workflow_variable'],
'Custom Workflow Variable') 'Custom Workflow Variable')
......
...@@ -9,7 +9,7 @@ wtool = getToolByName(context, 'portal_workflow') ...@@ -9,7 +9,7 @@ wtool = getToolByName(context, 'portal_workflow')
result = 'OK' result = 'OK'
error_list = [] error_list = []
def assertEquals(a, b, msg=''): def assertEqual(a, b, msg=''):
if a != b: if a != b:
if msg: if msg:
error_list.append(msg) error_list.append(msg)
...@@ -17,18 +17,18 @@ def assertEquals(a, b, msg=''): ...@@ -17,18 +17,18 @@ def assertEquals(a, b, msg=''):
error_list.append('%r != %r' % (a, b)) error_list.append('%r != %r' % (a, b))
foo_2 = foo_module['2'] foo_2 = foo_module['2']
assertEquals(foo_2.getSimulationState(), 'validated', assertEqual(foo_2.getSimulationState(), 'validated',
'Foo 2 state is %s' % foo_2.getSimulationState()) 'Foo 2 state is %s' % foo_2.getSimulationState())
if not error_list: if not error_list:
assertEquals( assertEqual(
wtool.getInfoFor(foo_2, 'history', wf_id='foo_workflow')[-2]['comment'], wtool.getInfoFor(foo_2, 'history', wf_id='foo_workflow')[-2]['comment'],
'Comment !') 'Comment !')
foo_3 = foo_module['3'] foo_3 = foo_module['3']
assertEquals(foo_3.getSimulationState(), 'validated', assertEqual(foo_3.getSimulationState(), 'validated',
'Foo 3 state is %s' % foo_3.getSimulationState()) 'Foo 3 state is %s' % foo_3.getSimulationState())
if not error_list: if not error_list:
assertEquals( assertEqual(
wtool.getInfoFor(foo_3, 'history', wf_id='foo_workflow')[-2]['comment'], wtool.getInfoFor(foo_3, 'history', wf_id='foo_workflow')[-2]['comment'],
'Comment !') 'Comment !')
......
...@@ -10,7 +10,7 @@ wtool = getToolByName(context, 'portal_workflow') ...@@ -10,7 +10,7 @@ wtool = getToolByName(context, 'portal_workflow')
result = 'OK' result = 'OK'
error_list = [] error_list = []
def assertEquals(a, b, msg=''): def assertEqual(a, b, msg=''):
if a != b: if a != b:
if msg: if msg:
error_list.append(msg) error_list.append(msg)
...@@ -18,15 +18,15 @@ def assertEquals(a, b, msg=''): ...@@ -18,15 +18,15 @@ def assertEquals(a, b, msg=''):
error_list.append('%r != %r' % (a, b)) error_list.append('%r != %r' % (a, b))
foo_2 = foo_module['2'] foo_2 = foo_module['2']
assertEquals(foo_2.getSimulationState(), 'draft', assertEqual(foo_2.getSimulationState(), 'draft',
'Foo 2 state is %s' % foo_2.getSimulationState()) 'Foo 2 state is %s' % foo_2.getSimulationState())
foo_3 = foo_module['3'] foo_3 = foo_module['3']
assertEquals(foo_3.getSimulationState(), 'validated', assertEqual(foo_3.getSimulationState(), 'validated',
'Foo 3 state is %s' % foo_3.getSimulationState()) 'Foo 3 state is %s' % foo_3.getSimulationState())
if not error_list: if not error_list:
assertEquals( assertEqual(
wtool.getInfoFor(foo_3, 'history', wf_id='foo_workflow')[-2]['comment'], wtool.getInfoFor(foo_3, 'history', wf_id='foo_workflow')[-2]['comment'],
'Comment !') 'Comment !')
......
...@@ -15,7 +15,7 @@ portal = context.getPortalObject() ...@@ -15,7 +15,7 @@ portal = context.getPortalObject()
default_language = web_section.getLayoutProperty("default_available_language", default='en') default_language = web_section.getLayoutProperty("default_available_language", default='en')
website_url_set = {} website_url_set = {}
#simplify code of Base_doLanguage, can't ues Base_doLanguage directly # simplify code of Base_doLanguage, can't use Base_doLanguage directly
root_website_url = web_section.getOriginalDocument().absolute_url() root_website_url = web_section.getOriginalDocument().absolute_url()
website_url_pattern = r'^%s(?:%s)*(/|$)' % ( website_url_pattern = r'^%s(?:%s)*(/|$)' % (
re.escape(root_website_url), re.escape(root_website_url),
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_columns=modification_date%7CModification%20Date;field_editable=checked</td> <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_columns=modification_date%7CModification%20Date&amp;field_editable=checked</td>
<td></td> <td></td>
</tr> </tr>
......
...@@ -45,7 +45,6 @@ class ShaDirMixin(object): ...@@ -45,7 +45,6 @@ class ShaDirMixin(object):
Initialize the ERP5 site. Initialize the ERP5 site.
""" """
self.login() self.login()
self.portal = self.getPortal()
self.key = 'mykey' + str(random.random()) self.key = 'mykey' + str(random.random())
self.file_content = b'This is the content.' self.file_content = b'This is the content.'
......
...@@ -186,4 +186,5 @@ class BusinessTemplateInfoDir(BusinessTemplateInfoBase): ...@@ -186,4 +186,5 @@ class BusinessTemplateInfoDir(BusinessTemplateInfoBase):
return fileinfo return fileinfo
def readFileInfo(self, fileinfo): def readFileInfo(self, fileinfo):
return open(fileinfo).read() with open(fileinfo) as f:
return f.read()
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import newSecurityManager
from six import StringIO
class TestFormPrintoutMixin(ERP5TypeTestCase): class TestFormPrintoutMixin(ERP5TypeTestCase):
run_all_test = 1 run_all_test = 1
......
...@@ -130,7 +130,7 @@ def patch_linecache(): ...@@ -130,7 +130,7 @@ def patch_linecache():
properly without requiring to create a temporary file on the filesystem properly without requiring to create a temporary file on the filesystem
The filename is is always '<portal_components/*>' for ZODB Components, The filename is is always '<portal_components/*>' for ZODB Components,
'(FILENAME)?Script \(Python\)' for Zope Python Scripts and 'Python '(FILENAME)?Script \\(Python\\)' for Zope Python Scripts and 'Python
Expression "CODE"' for TALES expressions. Expression "CODE"' for TALES expressions.
linecache.cache filled by linecache.updatecache() called by the original linecache.cache filled by linecache.updatecache() called by the original
......
...@@ -9,7 +9,6 @@ __version__ = '0.3.0' ...@@ -9,7 +9,6 @@ __version__ = '0.3.0'
import base64 import base64
import errno import errno
import httplib
import os import os
import random import random
import re import re
...@@ -18,7 +17,6 @@ import string ...@@ -18,7 +17,6 @@ import string
import sys import sys
import time import time
import traceback import traceback
import urllib
from six.moves import configparser from six.moves import configparser
from contextlib import contextmanager from contextlib import contextmanager
from io import BytesIO from io import BytesIO
...@@ -32,7 +30,6 @@ from DateTime import DateTime ...@@ -32,7 +30,6 @@ from DateTime import DateTime
import mock import mock
import Products.ZMySQLDA.DA import Products.ZMySQLDA.DA
from Products.ZMySQLDA.DA import Connection as ZMySQLDA_Connection from Products.ZMySQLDA.DA import Connection as ZMySQLDA_Connection
from zope.globalrequest import clearRequest
from zope.globalrequest import getRequest from zope.globalrequest import getRequest
from zope.globalrequest import setRequest from zope.globalrequest import setRequest
import six import six
...@@ -171,7 +168,8 @@ def _createTestPromiseConfigurationFile(promise_path, bt5_repository_path_list=N ...@@ -171,7 +168,8 @@ def _createTestPromiseConfigurationFile(promise_path, bt5_repository_path_list=N
promise_config.set('portal_certificate_authority', 'certificate_authority_path', promise_config.set('portal_certificate_authority', 'certificate_authority_path',
os.environ['TEST_CA_PATH']) os.environ['TEST_CA_PATH'])
promise_config.write(open(promise_path, 'w')) with open(promise_path, 'w') as f:
promise_config.write(f)
def profile_if_environ(environment_var_name): def profile_if_environ(environment_var_name):
if int(os.environ.get(environment_var_name, 0)): if int(os.environ.get(environment_var_name, 0)):
......
...@@ -34,7 +34,8 @@ class commandtransform: ...@@ -34,7 +34,8 @@ class commandtransform:
os.mkdir(tmpdir) os.mkdir(tmpdir)
filename = kwargs.get("filename", '') filename = kwargs.get("filename", '')
fullname = join(tmpdir, basename(filename)) fullname = join(tmpdir, basename(filename))
filedest = open(fullname , "wb").write(data) with open(fullname , "wb") as f:
f.write(data)
return tmpdir, fullname return tmpdir, fullname
def subObjects(self, tmpdir): def subObjects(self, tmpdir):
...@@ -50,7 +51,8 @@ class commandtransform: ...@@ -50,7 +51,8 @@ class commandtransform:
def fixImages(self, path, images, objects): def fixImages(self, path, images, objects):
for image in images: for image in images:
objects[image] = open(join(path, image), 'rb').read() with open(join(path, image), 'rb') as f:
objects[image] = f.read()
def cleanDir(self, tmpdir): def cleanDir(self, tmpdir):
shutil.rmtree(tmpdir) shutil.rmtree(tmpdir)
...@@ -151,7 +153,7 @@ class subprocesstransform: ...@@ -151,7 +153,7 @@ class subprocesstransform:
try: try:
if not self.useStdin: if not self.useStdin:
stdin_file = tempfile.NamedTemporaryFile() stdin_file = tempfile.NamedTemporaryFile()
stdin_file.write( data) stdin_file.write(data)
stdin_file.seek(0) stdin_file.seek(0)
command = command % {'infile': stdin_file.name} # apply tmp name to command command = command % {'infile': stdin_file.name} # apply tmp name to command
data = None data = None
......
...@@ -21,7 +21,6 @@ from __future__ import print_function ...@@ -21,7 +21,6 @@ from __future__ import print_function
import six.moves.BaseHTTPServer import six.moves.BaseHTTPServer
import six.moves.CGIHTTPServer import six.moves.CGIHTTPServer
import time import time
import httplib
import sys import sys
PORT = 8000 PORT = 8000
......
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