The test code uses a "mock" Transport object to ensure that events are
stored locally in memory, instead of triggering network requests.
The Sentry client is cleaned up once done, and this triggers a call to
capture_envelope, a different way of sending events to Sentry. Since
our mock class did not fully complete initialization, and also did
not provide an overriding method, the original was called, which
depends on proper initialization to work.
We introduce an override for capture_envelope: as it is meant to be
a "sibling" to capture_event, it makes sense for us to also make sure
events registrered in this way are intercepted, even if we don't
currently expect any of our tests to explicitly cause it to be used.
Because post_load is called after odoo.service.server start
It has already registered the unpatched odoo.service.wsgi_server.application
So patch it here too.
This enables wsgi performance reporting with sentry_traces_sample_rate
Allow using `sentry_release` or `sentry_odoo_dir` in the Odoo
configuration file.
Previously, the `sentry_odoo_dir` was never actually respected. It would
always be overridden by `sentry_release`. Even if `sentry_release` is
not set, it will use an empty value instead of using `sentry_odoo_dir`
to find the Git commit hash.
After this commit, the `sentry_release` parameter still takes
precedence. However, if `sentry_release` is not set and
`sentry_odoo_dir` is set, then `sentry_odoo_dir` will be used to find
the appropriate Git commit hash, which will be used as the `release`
value.
Both cases are covered by the added unit tests.
The following warning is fixed:
DeprecationWarning: Using or importing the ABCs from 'collections' instead of
from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop
working
sentry: It is not always possible to read commit information from
a production environment. In those cases it is useful to be able
to set a release version manually.
[UPD] Update sentry.pot
This fixes an error we could get if the attribute of the inherited tag
has some extra carriage returns.
Exception raised: SyntaxError: unexpected EOF while parsing
* Removed `list_add` and `list_remove`, they've been deprecated and
implemented in Odoo core since several versions ago.
* Removed `move`, as it has also already been implemented in core several
versions ago.
* Replaced `python_dict` by `update`, that performs an operation similar
to :meth:`dict.update`, but on the ast.Dict.