1. 28 May, 2024 13 commits
    • Jérome Perrin's avatar
      oauth_google_login: reimplement with oauthlib/requests · 469b59f3
      Jérome Perrin authored
      Because the librairies used here were never ported to python3.
      
      Notable changes:
      
        - ERP5Site_createGoogleUserToOAuth is dropped
        - internal API changed radically, so customizations made by overriding
          scripts are broken.
        - the core logic is now implemented in a connector class (still in
          portal_oauth for simplicity, but it would be simpler to move it to
          portal_web_services)
      
      No changes required in the google console, the redirect uri is still
      ERP5Site_receiveGoogleCallback
      469b59f3
    • Jérome Perrin's avatar
      ZopePatch: enable WebDAV patch python3 · 539cbb88
      Jérome Perrin authored
      539cbb88
    • Kazuhiko Shiozaki's avatar
      b75ec912
    • Jérome Perrin's avatar
      *: don't use `unicode` in page templates · bf074aa4
      Jérome Perrin authored
      page templates unicode resolver already takes care of coercing when
      needed and this is directly compatible with python2 and python3
      Co-authored-by: Kazuhiko Shiozaki's avatarKazuhiko SHIOZAKI <kazuhiko@nexedi.com>
      bf074aa4
    • Jérome Perrin's avatar
      accounting_l10n_fr: don't use str().encode('zlib') · 0ea4de3b
      Jérome Perrin authored
      This only works on python2
      0ea4de3b
    • Kazuhiko Shiozaki's avatar
    • Jérome Perrin's avatar
      base: fix lxml usage in ImageUtil · d76745c1
      Jérome Perrin authored
      d76745c1
    • Jérome Perrin's avatar
      hal_json_style: remove useless log in Base_callDialogMethod · 1eb43d4d
      Jérome Perrin authored
      for same reason as the xhtml_style version, there is no problem with
      having more than one listbox, see d2dedca3 (core: remove useless log
      in Base_callDialogMethod, 2020-07-03)
      1eb43d4d
    • Carlos Ramos Carreño's avatar
      Fixes the error in test_onErrorCallback. · a9488ad6
      Carlos Ramos Carreño authored
      The test testCMFActivity.TestCMFActivity.test_onErrorCallback was
      failing because some weak references were not dropped.
      The reason was that _DequeueMessageException was declared as global
      and it kept a traceback including the variables pointed by the weak
      references, preventing their garbage collection.
      This was fixed by using a class for the _DequeueMessageException
      instead of a singleton, and creating a new instance on every raise.
      a9488ad6
    • Jérome Perrin's avatar
      testCMFActivity: support pickle protocol > 0 in test_insert_max_payload · 06fd8fe9
      Jérome Perrin authored
      This test assumed that activating a method with a string of length `n+x`
      as argument would be serialized in `x` more bytes that activating the
      same method with a string of length `n` as argument, which is only true
      for protocol 0 for multiple reasons ( short strings and long strings
      are serialized differently, "frames" are used with protocol 5) and
      db.string_literal seems to introduce a difference.
      
      Change the test to mock Message.dump to produce longer dumps instead of
      relying on this assumption.
      06fd8fe9
    • Jérome Perrin's avatar
      testCMFActivity: do not rely on unittest internals (_resultForDoCleanups) · e9a50db4
      Jérome Perrin authored
      _resultForDoCleanups no longer exists on python3, getting the status
      of a test in teardown is very different accross python versions ( see
      https://stackoverflow.com/q/4414234 ) and just executing this code when
      the test failed only has the problem that a test method may count as
      two failures or errors, which is after all not a big problem.
      e9a50db4
    • Jérome Perrin's avatar
      59a8d953
    • Jérome Perrin's avatar
      ERP5TypeTestCase: rework default manager password generation · 0d34e16e
      Jérome Perrin authored
      The default manager user (ERP5TypeTestCase) now have a random password
      generated at the beginning of test. The password is stored as a class
      attribute of the test case instance.
      Many tests have been updated to not generate manager user and use the
      existing one instead. When tests need to create users (for example
      users in the root acl_users), we try to delete the users afterward.
      
      Another significant changes is that we no longer have the same user in
      ERP5/acl_users and /acl_users, some tests were logging in as the root
      user in ways that never seemed intentional.
      
      For functional tests, the approach is that ERP5TypeFunctionalTestCase
      sets cookies with manager username and password before running zelenium
      tests, so that in case tests want to log in again as manager, they can
      read the username and password from cookies.
      
      This also revealed (through test_manager_actions_on_portal from
      testERP5Core) that some tests were running with a user without all the
      expected permissions and the "Manager Components" actions was not
      visible for the default manager user. Fixing this also revealed that
      two actions ("Manage Components" and "Manage Callables") had the same
      priority, so the later was modified to use a different priority.
      0d34e16e
  2. 27 May, 2024 2 commits
  3. 22 May, 2024 4 commits
  4. 20 May, 2024 8 commits
  5. 19 May, 2024 2 commits
    • Jérome Perrin's avatar
      core: make Base_edit raise in case of wrong matrixbox keys · b4227bb9
      Jérome Perrin authored
      This should not happens, but if this happens we should not just return
      in the middle of the loop, because this returned value is not used,
      so we would just silently edit partially.
      b4227bb9
    • Jérome Perrin's avatar
      Security of tester accessors · 63dcec59
      Jérome Perrin authored
      The first commit of this merge request was introduced for zope4py3 branch but it revealed issues on py2 as well, i.e. we don't have roles in auto-generated tester methods.
      
      ```
      ======================================================================
      FAIL: test_method_protection (testSecurity.TestSecurity)
      This test will list all implicitly Public methods in any objects in ZODB.
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "/(SR)/parts/erp5/Products/ERP5/tests/testSecurity.py", line 113, in test_method_protection
          self.fail(message)
      AssertionError: 
      The following 7 methods have a docstring but have no security assertions.
      	/(SR)/parts/erp5/product/ERP5Form/PreferenceTool.py:65 isPreferredVcsPushMode
      	/srv/slapgrid/slappart19/t/eiy/soft/8a7759fd7b65b20d9f87713605745d05/parts/erp5/product/ERP5Type/Accessor/AcquiredProperty.py:217 hasTelephoneValidationState
      	/(SR)/parts/erp5/product/ERP5Type/Accessor/Base.py:219 hasViewFormIdList
      	/(SR)/parts/erp5/product/ERP5Type/Accessor/Constant.py:94 isWebDocumentType
      	/(SR)/parts/erp5/product/ERP5Type/Accessor/Content.py:224 hasImage
      	/(SR)/parts/erp5/product/ERP5Type/Accessor/ContentProperty.py:283 hasImageWidthList
      	/(SR)/parts/erp5/product/ERP5Type/Accessor/Translation.py:233 hasFrTranslatedTitle
      
      ----------------------------------------------------------------------
      ```
      
      See merge request nexedi/erp5!1911
      63dcec59
  6. 17 May, 2024 6 commits
  7. 16 May, 2024 5 commits