Commit f0727f42 authored by Arnaud Fontaine's avatar Arnaud Fontaine

Add test to check for invalid TALES Expressions, namely syntax error

and invalid category in a DynamicCategoryProperty, but skip the test
for now as accessors generation through Utils does not deal with that



git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@43651 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 87f34717
master allow_login_change allow_login_change_wip arnau arnau-TM-components-products-migration arnau-TM-isBuildable-with-multiple-BusinessLinks arnau-TM-jabber-client-desktop-notifications arnau-kns arnau-kns-without-property-mapping arnau-merge arnau-poc arnau-real-time-inventory-accounting auto_extend_select_list autoflake backup_erp5_workflow bk_erp5ish_actions_tool bk_sqlcatalog boc-interaction-drop bryton/py3 bt5_config cache callable-jupyter-storage catalog_filter catalog_fulltext catalog_fulltext_old cedric cedriclen cedriclen-eos certificate_authority cherry-pick-243c2f03 cherry-pick-304d7a28 cherry-pick-4a8e045d cleanJSByJSLint clean_up_upgrader cleanup_acquisition_base_category compact_title_no_reference credential_update_action datetimefield deferred_listbox delivery_item_barcode douglas_forum dream_distributor dsn-phase3 eos-dev erp5-component erp5-forum erp5-messenger erp5-preference erp5-release erp5-slapos-upgrade erp5-util-testing erp5-vifib erp5-vifib-cleanup erp5_calendar erp5_capture_flag erp5_catalog erp5_catalog_final erp5_corporate_identity erp5_discussion_tool erp5_forum erp5_free_subscription erp5_hal_json_style_fix_restricted_access_with_traverse erp5_monitoring_app erp5_new_officejs erp5_new_officejs_2 erp5_new_officejs_3 erp5_new_officejs_4 erp5_new_officejs_5 erp5_officejs erp5_payslip_migration erp5_texteditor_migration erp5_workflow erp5testnode_max_timeout experiment/coding_style_test_suite feat/olapy feat/pdm_content_translation feature/accounting-reports-stats feature/hal-actions-support feature/hal-support-update feature/jio-accounting-reports feature/jio-action-accounting feature/jio-selection-actions feature/json-allows-all-jio-actions feature/renderjs-matrixbox feature/renderjs-ui-no-header feature/rjs-listbox-stats feature/rjs-mass-transition feature/rjs-print-action fix/20180928-1D89375 fix/consistency_check_alarm fix/login_validate_check_consistency fix/multiple_small_fixes_to_zodb_history_tab fix/support-request-app-empty fix_listbox_buttons fix_system_processes_ownership for_testrunner_1 for_testrunner_2 for_testrunner_3 gabriel gabriel-fix-rounding-in-accounting-generation gabriel-fix-rounding-in-accounting-generation2 gadget-json-value hateoas hotfix/accounting-test-timeout hotfix/callable_tool hotfix/field-keeps-request hotfix/jio-mass-transition hotfix/jio_view hotfix/pdm-test hotfix/rjs-accounting-tests hotfix/rjs-editability hotfix/rjs-form-less-invasive hotfix/rjs-formfields-padding hotfix/rjs-listbox-mutex hotfix/rjs-replace-query-with-uids hotfix/tests-cleanup http_cache_fix improve_default_caching_policy_manager initsite interaction-drop isDeletable item_tracking_graph_editor ivan jerome-bt-reference-doc jerome_graph_editor_renderjs jerome_new_style_solve_divergence jerome_user_preference_time_zone jio jm/form-action-guard joblib-activity js-ui kns kns-kr lazy_simulation_causality lignan lingnan listbox-generator listbox_url macros_fix mame mame-bt5-cleanup mame-erp5_project-cleanup mame-naming-convention mame-naming-convention-list_method mame-test-stock-indexation mame-work mame2 maste_copy master-erp5-test-result-scalability master-erp5-test-result-scalability-rebase master-test-fix-additionalbt5path master_calendar_wip_patches master_calendar_wip_patches_extend_security master_no_guard_on_workflow_transition master_no_guard_on_workflow_transition_plus_calendar_wip_patchs mic_wind mmariani-inventory monitoring monitoring-graph mrp new-render-presentation no_longer_simulated_state notebook_roque officejs officejs_clean officejs_monitoring officejs_zip ojs_wip old_erp5_text_editor_migration pere portal_callables portal_solver_process_security_configuration presentation project_nexedi_net rebased_mrp refactor/base_edit refactor/renderjs reindex_calendar_after_change_calendar_exception reverse_logistics revert-38554dbe revert-6c89fe9b rewrite_test_21_AcquiredPortalType romain-fulltext romain_monitoring_app roque_appstore_base roque_appstore_improvements roque_credentials roque_dev roque_drone_simulator roque_erp5 roque_fix_coordinates roque_officejs roque_quick scalability-master scalability-master2 scalability-master2-rebase scalability-roque scalability-roque-2 scalability-run-command shop-box sms_more_than_140_characters strict_catalog syncml taskdistribution-xmlrpc-binary test_page testnode_software_link timezones tmp/getInstalledBusinessTemplate_never_installed_bt tristan tristan-merge tristan-performance ttrm upgradeSite view-aggregated-amounts vivekpab_renderjs_interfaces w3validator_removal wenjie wenjie_branch wip yryr yryr-components-cp yryr-inventory-cache yryr-test yryr-with-components yusei test-ui test-rjsacc test-rjs renderjs-test erp5.util-0.4.56 erp5.util-0.4.55 erp5.util-0.4.54 erp5.util-0.4.53 erp5.util-0.4.52 erp5.util-0.4.49 erp5.util-0.4.46 erp5.util-0.4.44 erp5.util-0.4.43 erp5.util-0.4.41 erp5.util-0.4.40 erp5.util-0.4.37 erp5.util-0.4.1 erp5.util-0.4 erp5.util-0.3 erp5.util-0.2 erp5.util-0.1
No related merge requests found
......@@ -1002,10 +1002,9 @@ class TestZodbPropertySheet(ERP5TypeTestCase):
def testAddEmptyProperty(self):
"""
When users create properties in a PropertySheet, the property
is first empty.
Check that accessor generation can cope with such invalid
properties
When users create properties in a PropertySheet, the property is
first empty. Check that accessor generation can cope with such
invalid properties
"""
property_sheet_tool = self.portal.portal_property_sheets
arrow = property_sheet_tool.Arrow
......@@ -1049,15 +1048,57 @@ class TestZodbPropertySheet(ERP5TypeTestCase):
except Exception:
self.fail("Creating an empty Constraint raises an error")
# be really nasty, and test that code is still foolproof
# (this None value should never appear in an expression... unless
# the method has a mistake)
dynamic_category.setCategoryExpression('python: ["foo", None, "region"]')
@skip("Skipped until per-document accessors generation is committed")
def testAddInvalidProperty(self):
"""
Check that setting an invalid TALES Expression as a property
attribute value does not raise any error
XXX: For now, this test fails because the accessors generation
going through Utils does catch errors when evaluating TALES
Expression, but this will be addressed in per-property document
accessors generation
"""
arrow = self.portal.portal_property_sheets.Arrow
person = self.portal.person_module.newContent(portal_type="Person")
# be really nasty, and test that code is still foolproof (this
# None value should never appear in an expression... unless the
# method has a mistake)
dynamic_category = arrow.newContent(
portal_type="Dynamic Category Property",
category_expression='python: ["foo", None, "region"]')
transaction.commit()
try:
person.newContent(portal_type="Career")
except Exception, e:
self.fail("Creating a Category Expression with None as one of the "\
"category ID raises an error")
# Action -> add Acquired Property
arrow.newContent(portal_type="Acquired Property",
acquisition_portal_type="python: ('foo', None)",
content_portal_type="python: ('goo', None)")
# a user is doing this, so commit after each request
transaction.commit()
try:
person.newContent(portal_type="Career")
except Exception:
self.fail("Creating an Acquired Property with invalid TALES expression "\
"raises an error")
# Check invalid syntax in TALES Expression, we check only for
# DynamicCategoryProperty because it's exactly the same function
# called for StandardProperty and AcquiredProperty, namely
# evaluateExpressionFromString
dynamic_category.setCategoryExpression('python: [')
transaction.commit()
try:
person.newContent(portal_type="Career")
except Exception:
self.fail("Creating an invalid Category Expression raises an error")
self.fail("Creating a Category Expression with syntax error raises "\
"an error")
from Products.CMFCore.Expression import Expression
......
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