- 05 Mar, 2024 20 commits
-
-
Jérome Perrin authored
When a business template has multiple dependencies, these dependencies were installed in an order defined by iteration in dictionaries, which is not deterministic when using a random PYTHONHASHSEED on python2. As an example, when we have business template "b" depending on "b1" and "b2", the only guarantee was that "b" would be installed after "b1" and "b2", but which one of "b1" and "b2" is installed first was undefined, now it is stable, "b1" should be installed before "b2", because we added a sort. In practice it should not matter, because if in that example "b2" really needs to be installed after "b1", then "b2" should declare a dependency on "b1". test_resolveBusinessTemplateListDependency was failing on python3 because the order on python3 was different from the one using PYTHONHASHSEED=0 on python2.
-
Jérome Perrin authored
In that case, the order of actions rendering is undefined, we want to have unique priorities to have deterministic order of actions.
-
Jérome Perrin authored
This probably happened only in the test, but it's safer not to retry for ever.
-
Jérome Perrin authored
With PYTHONHASHSEED=0, editing a document like this: foo.edit( title="live_test_%s" % new_id, reference="live_test_%s" % new_id ) only sets the reference, because it sets the reference first and then when setting title it already has the "live_test_%s" % new_id value ( because title is acquired from reference). With PYTHONHASHSEED set, the order is not guaranteed and sometimes title is edited before reference. This is revealed by testHalJsonStyle.TestERP5Document_getHateoas_mode_search with PYTHONHASHSEED 465.
-
Jérome Perrin authored
Co-authored-by: Kazuhiko SHIOZAKI <kazuhiko@nexedi.com>
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
otherwise edit is called with both (new) resource_uid and (old) resource_value.
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
revealed by erp5_web_renderjs_ui_test:testFunctionalRJSDeveloperMode with PYTHONHASHSEED: 977 on py2
-
Jérome Perrin authored
erp5_workflow_test:testWorkflowAndDCWorkflow PYTHONHASHSEED=872 fails with: ValueError: UID mismatch for <Workflow Script at /erp5_portal_7faf002ae74ecbab0dce45c9fca0f5e1/portal_workflow/testing_erp5_interaction_workflow/script_afterValidate>
-
Jérome Perrin authored
Using portal_transforms is not deterministic, because we don't have direct chain from ods to text, so the conversion is two steps, either ods=>html=>text or ods=>pdf=>text. This caused problem with hash randomization, revealed by testDeferredStyle.TestODSDeferredStyle.test_report_method_access_request with PYTHONHASHSEED=538 on python2. When using PYTHONHASHSEED=0 , this was using ods=>html=>text and the assertion from the test was OK, but when using ods=>pdf=>text the test fails because the words are cut at end of line.
-
Jérome Perrin authored
-
Jérome Perrin authored
use a valid image in testERP5ImageProcessor, this test evolved and became a test for ERP5 behavior with broken images. This indirectly solves a failure with testERP5ImageProcessor and PYTHONHASHSEED: 805
-
Jérome Perrin authored
-
Jérome Perrin authored
When we --load, the sql dump is supposed to be up to date, we don't need to update translation table every time. This is mainly to solve an issue that it might not be possible to run ERP5Site_updateTranslationTable at this point, with testUpgradeInstanceWithOldDataFs this script uses a print statement, which causes a SyntaxError.
-
Julien Muchembled authored
Unit test written by Rafael Monnerat. See commit 3d7d6d5e.
-
Léo-Paul Géneau authored
See merge request !1894 * set _game_duration as an unix epoch * provide timestamp to onStart function * add max_command_frequency, if direction commands (setTargetCoordinates and loiter) are send more often than max frenquency the drone crashes
-
- 04 Mar, 2024 2 commits
-
-
Rafael Monnerat authored
See merge request !1895
-
Jérome Perrin authored
91cc6c4e (ERP5Type/Utils: configure warnings in zopewsgi, 2024-02-16) was bad, on python2 zope did not start.
-
- 01 Mar, 2024 16 commits
-
-
Rafael Monnerat authored
Action on portal_types just invoke updateRoleMapping on all portal types that have at least one Role. This is useful whever you change way too many roles and you can to ensure that everything is updated.
-
Rafael Monnerat authored
See merge request !1893
-
Jérome Perrin authored
This uses `from __future__ import print_function` from "unrestricted" python code. For restricted python in python scripts, this expects SlapOS to have slapos!1536 . Running ERP5 with this patch on an old SlapOS software release should probably be OK, especially because after all we don't have so much critical code using print. To ease migration of custom project code, PythonCodeUtils was modified so that when running CodingStyle python scripts are checked with print_function future enabled. See merge request !1883
-
Rafael Monnerat authored
Since the test() method was fixed the comment became irrelevant
-
Łukasz Nowak authored
Returning true allows to add movements to existing one, and this group shall always separate them.
-
Léo-Paul Géneau authored
See merge request !1891
-
Léo-Paul Géneau authored
Rename triggerParachute function into land in DroneManager for compliance with multicopters APIs.
-
Nicolas Wavrant authored
See merge request !1880
-
Nicolas Wavrant authored
I investigated a case where activities calling an external API were not retried after the initial failure, when it was caused by TimeoutReachedError: https://lab.nexedi.com/nexedi/erp5/-/blob/f41b33cd91348a800db3b95b30efd857f583bcde/bt5/erp5_web_service/MixinTemplateItem/portal_components/mixin.erp5.RESTAPIClientConnectorMixin.py#L142 The interesting thing is that these activities are written in a way that allow them to be retried (automatically, or manually) without causing un-intended side effects, like creating twice a document in the external API. So not having SQLBase retrying them automatically is a pity. The bug is that the use of TimeoutReachedError here was intended only for the activities that are aborted by CMFActivity itself, and not for the userland code that can also use TimeoutReachedError. This commit removes this special processing, as there is no need to especially not retry the activities that trigger the CMFActivity timeout. The max_retry decision should be taken by the calling code, and not by CMFActivity.
-
Jérome Perrin authored
This flags python2 style usage of print as a statement
-
Jérome Perrin authored
-
Kazuhiko Shiozaki authored
(not yet for scripts under portal_skins) adjusted (by Jérome) to just remove call to print in a few places where it made more sense.
-
Kazuhiko Shiozaki authored
-
Jérome Perrin authored
-
Rafael Monnerat authored
See merge request !1889
-
Rafael Monnerat authored
See merge request !1887
-
- 29 Feb, 2024 2 commits
-
-
Rafael Monnerat authored
-
Rafael Monnerat authored
Move Simulation to priority 3 helps to not block/delay immediateReindex on a scenario where everything is expanding. We use priority 3 to match what is used in SimulableMixin.updateSimulation and Delivery.localBuild
-