Skip to content

[18.0][FIX] queue_job: fix verbose warning in tests with patched methods#938

Open
guewen wants to merge 1 commit into
OCA:18.0from
guewen:18.0-fix-patch-method-warning
Open

[18.0][FIX] queue_job: fix verbose warning in tests with patched methods#938
guewen wants to merge 1 commit into
OCA:18.0from
guewen:18.0-fix-patch-method-warning

Conversation

@guewen
Copy link
Copy Markdown
Member

@guewen guewen commented May 22, 2026

Methods patched with _patch_method leads to a lot of warnings during tests that look like:

2026-05-22 08:44:57,099 1 INFO testdb odoo.tests.common: /odoo/external-src/queue/queue_job/models/base.py:270:_patch_method setting edi.exchange.record.action_exchange_generate to <function EDIExchangeRecord.action_exchange_generate at 0x7f23b62a0680>
Stack (most recent call last):
  File "/usr/local/bin/odoo", line 8, in <module>
    odoo.cli.main()
  File "/odoo/src/odoo/cli/command.py", line 66, in main
    o.run(args)
  File "/odoo/src/odoo/cli/server.py", line 182, in run
    main(args)
  File "/odoo/src/odoo/cli/server.py", line 175, in main
    rc = odoo.service.server.start(preload=preload, stop=stop)
  File "/odoo/src/odoo/service/server.py", line 1457, in start
    rc = server.run(preload, stop)
  File "/odoo/src/odoo/service/server.py", line 622, in run
    rc = preload_registries(preload)
  File "/odoo/src/odoo/service/server.py", line 1388, in preload_registries
    result = loader.run_suite(post_install_suite, global_report=registry._assertion_report)
  File "/odoo/src/odoo/tests/loader.py", line 118, in run_suite
    suite(results)
  File "/usr/local/lib/python3.12/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/odoo/src/odoo/tests/suite.py", line 49, in run
    self._tearDownPreviousClass(None, result)
  File "/odoo/src/odoo/tests/suite.py", line 190, in _tearDownPreviousClass
    super()._tearDownPreviousClass(test, result)
  File "/odoo/src/odoo/tests/suite.py", line 112, in _tearDownPreviousClass
    previousClass.doClassCleanups()
  File "/odoo/src/odoo/tests/case.py", line 247, in doClassCleanups
    function(*args, **kwargs)
  File "/odoo/src/odoo/tests/common.py", line 989, in reset_changes
    cls.registry.setup_models(cr)
  File "/usr/local/lib/python3.12/site-packages/decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
  File "/odoo/src/odoo/tools/func.py", line 97, in locked
    return func(inst, *args, **kwargs)
  File "/odoo/src/odoo/modules/registry.py", line 375, in setup_models
    model._register_hook()
  File "/odoo/external-src/edi-framework/edi_queue_oca/models/edi_exchange_record.py", line 26, in _register_hook
    self._patch_method(function, self._patch_job_auto_delay(function))
  File "/odoo/external-src/queue/queue_job/models/base.py", line 270, in _patch_method
    setattr(cls, name, wrapped)
  File "/odoo/src/odoo/tests/common.py", line 971, in metamodel_setattr
    _logger.runbot(
  File "/odoo/src/odoo/netsvc.py", line 360, in runbot
    self.log(logging.RUNBOT, message, *args, **kws)

Methods patched with _patch_method leads to a lot of warnings during
tests that look like:

2026-05-22 08:44:57,099 1 INFO testdb odoo.tests.common: /odoo/external-src/queue/queue_job/models/base.py:270:_patch_method setting edi.exchange.record.action_exchange_generate to <function EDIExchangeRecord.action_exchange_generate at 0x7f23b62a0680>
Stack (most recent call last):
  File "/usr/local/bin/odoo", line 8, in <module>
    odoo.cli.main()
  File "/odoo/src/odoo/cli/command.py", line 66, in main
    o.run(args)
  File "/odoo/src/odoo/cli/server.py", line 182, in run
    main(args)
  File "/odoo/src/odoo/cli/server.py", line 175, in main
    rc = odoo.service.server.start(preload=preload, stop=stop)
  File "/odoo/src/odoo/service/server.py", line 1457, in start
    rc = server.run(preload, stop)
  File "/odoo/src/odoo/service/server.py", line 622, in run
    rc = preload_registries(preload)
  File "/odoo/src/odoo/service/server.py", line 1388, in preload_registries
    result = loader.run_suite(post_install_suite, global_report=registry._assertion_report)
  File "/odoo/src/odoo/tests/loader.py", line 118, in run_suite
    suite(results)
  File "/usr/local/lib/python3.12/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/odoo/src/odoo/tests/suite.py", line 49, in run
    self._tearDownPreviousClass(None, result)
  File "/odoo/src/odoo/tests/suite.py", line 190, in _tearDownPreviousClass
    super()._tearDownPreviousClass(test, result)
  File "/odoo/src/odoo/tests/suite.py", line 112, in _tearDownPreviousClass
    previousClass.doClassCleanups()
  File "/odoo/src/odoo/tests/case.py", line 247, in doClassCleanups
    function(*args, **kwargs)
  File "/odoo/src/odoo/tests/common.py", line 989, in reset_changes
    cls.registry.setup_models(cr)
  File "/usr/local/lib/python3.12/site-packages/decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
  File "/odoo/src/odoo/tools/func.py", line 97, in locked
    return func(inst, *args, **kwargs)
  File "/odoo/src/odoo/modules/registry.py", line 375, in setup_models
    model._register_hook()
  File "/odoo/external-src/edi-framework/edi_queue_oca/models/edi_exchange_record.py", line 26, in _register_hook
    self._patch_method(function, self._patch_job_auto_delay(function))
  File "/odoo/external-src/queue/queue_job/models/base.py", line 270, in _patch_method
    setattr(cls, name, wrapped)
  File "/odoo/src/odoo/tests/common.py", line 971, in metamodel_setattr
    _logger.runbot(
  File "/odoo/src/odoo/netsvc.py", line 360, in runbot
    self.log(logging.RUNBOT, message, *args, **kws)
@OCA-git-bot
Copy link
Copy Markdown
Contributor

Hi @sbidoul,
some modules you are maintaining are being modified, check this out!

@amh-mw
Copy link
Copy Markdown
Member

amh-mw commented May 25, 2026

I am unable to reproduce the offending logs against the latest odoo:18 container with latest OCA/queue 18.0 branch and --init=queue_job,test_queue_job --test-tags=/queue_job,/test_queue_job.

@guewen
Copy link
Copy Markdown
Member Author

guewen commented Jun 1, 2026

Yeah it doesn't happen directly in queue_job tests, I can reproduce it with

git clone git@github.com:oca/edi -b 18.0 edi 
git clone git@github.com:oca/edi-framework -b 18.0 edi-framework 

and the lastest commits of odoo 18.0, with

odoo -c odoorc -d edi -i edi_queue_oca --stop-after-init 
odoo -c odoorc -d edi --stop-after-init --test-tags '/edi_queue_oca'

It leads to (many times)

2026-06-01 09:37:09,231 332633 INFO edi odoo.tests.common: /home/guewenb/dev/odoo18/queue/queue_job/models/base.py:270:_patch_method setting edi.exchange.record.action_exchange_generate to <function EDIExchangeRecord.action_exchange_generate at 0x7fe3c4a5e020> 
Stack (most recent call last):
  File "/home/guewenb/dev/odoo18/env/bin/odoo", line 8, in <module>
    odoo.cli.main()
  File "/home/guewenb/dev/odoo18/odoo/odoo/cli/command.py", line 76, in main
    o.run(args)
  File "/home/guewenb/dev/odoo18/odoo/odoo/cli/server.py", line 182, in run
    main(args)
  File "/home/guewenb/dev/odoo18/odoo/odoo/cli/server.py", line 175, in main
    rc = odoo.service.server.start(preload=preload, stop=stop)
  File "/home/guewenb/dev/odoo18/odoo/odoo/service/server.py", line 1462, in start
    rc = server.run(preload, stop)
  File "/home/guewenb/dev/odoo18/odoo/odoo/service/server.py", line 627, in run
    rc = preload_registries(preload)
  File "/home/guewenb/dev/odoo18/odoo/odoo/service/server.py", line 1393, in preload_registries
    result = loader.run_suite(post_install_suite, global_report=registry._assertion_report)
  File "/home/guewenb/dev/odoo18/odoo/odoo/tests/loader.py", line 118, in run_suite
    suite(results)
  File "/home/guewenb/.local/share/mise/installs/python/3.13.3/lib/python3.13/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/home/guewenb/dev/odoo18/odoo/odoo/tests/suite.py", line 42, in run
    self._tearDownPreviousClass(test, result)
  File "/home/guewenb/dev/odoo18/odoo/odoo/tests/suite.py", line 190, in _tearDownPreviousClass
    super()._tearDownPreviousClass(test, result)
  File "/home/guewenb/dev/odoo18/odoo/odoo/tests/suite.py", line 112, in _tearDownPreviousClass
    previousClass.doClassCleanups()
  File "/home/guewenb/dev/odoo18/odoo/odoo/tests/case.py", line 247, in doClassCleanups
    function(*args, **kwargs)
  File "/home/guewenb/dev/odoo18/odoo/odoo/tests/common.py", line 1003, in reset_changes
    cls.registry.setup_models(cr)
  File "/home/guewenb/dev/odoo18/env/lib/python3.13/site-packages/decorator.py", line 235, in fun
    return caller(func, *(extras + args), **kw)
  File "/home/guewenb/dev/odoo18/odoo/odoo/tools/func.py", line 97, in locked
    return func(inst, *args, **kwargs)
  File "/home/guewenb/dev/odoo18/odoo/odoo/modules/registry.py", line 375, in setup_models
    model._register_hook()
  File "/home/guewenb/dev/odoo18/edi-framework/edi_queue_oca/models/edi_exchange_record.py", line 26, in _register_hook
    self._patch_method(function, self._patch_job_auto_delay(function))
  File "/home/guewenb/dev/odoo18/queue/queue_job/models/base.py", line 270, in _patch_method
    setattr(cls, name, wrapped)
  File "/home/guewenb/dev/odoo18/odoo/odoo/tests/common.py", line 985, in metamodel_setattr
    _logger.runbot(
  File "/home/guewenb/dev/odoo18/odoo/odoo/netsvc.py", line 360, in runbot
    self.log(logging.RUNBOT, message, *args, **kws)

@OCA-git-bot
Copy link
Copy Markdown
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants