From 5bb852a9e7117845ce8f3dcc8a8d2c8b4101ff19 Mon Sep 17 00:00:00 2001 From: Martin Date: Sat, 25 May 2024 21:05:43 +0200 Subject: [PATCH 01/14] [17.0][ADD] odoo_test_xmlrunner module --- odoo_test_xmlrunner/README.rst | 201 +++++++ odoo_test_xmlrunner/__init__.py | 1 + odoo_test_xmlrunner/__manifest__.py | 19 + odoo_test_xmlrunner/odoo_tests/__init__.py | 1 + odoo_test_xmlrunner/odoo_tests/loader.py | 33 ++ odoo_test_xmlrunner/pyproject.toml | 3 + odoo_test_xmlrunner/readme/CONFIGURATION.md | 2 + odoo_test_xmlrunner/readme/CREDITS.md | 2 + odoo_test_xmlrunner/readme/DESCRIPTION.md | 1 + odoo_test_xmlrunner/readme/INSTALL.md | 3 + odoo_test_xmlrunner/readme/USAGE.md | 108 ++++ odoo_test_xmlrunner/requirements.txt | 1 + .../static/description/index.html | 547 ++++++++++++++++++ 13 files changed, 922 insertions(+) create mode 100644 odoo_test_xmlrunner/README.rst create mode 100644 odoo_test_xmlrunner/__init__.py create mode 100644 odoo_test_xmlrunner/__manifest__.py create mode 100644 odoo_test_xmlrunner/odoo_tests/__init__.py create mode 100644 odoo_test_xmlrunner/odoo_tests/loader.py create mode 100644 odoo_test_xmlrunner/pyproject.toml create mode 100644 odoo_test_xmlrunner/readme/CONFIGURATION.md create mode 100644 odoo_test_xmlrunner/readme/CREDITS.md create mode 100644 odoo_test_xmlrunner/readme/DESCRIPTION.md create mode 100644 odoo_test_xmlrunner/readme/INSTALL.md create mode 100644 odoo_test_xmlrunner/readme/USAGE.md create mode 100644 odoo_test_xmlrunner/requirements.txt create mode 100644 odoo_test_xmlrunner/static/description/index.html diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst new file mode 100644 index 00000000000..c8d5c9881e5 --- /dev/null +++ b/odoo_test_xmlrunner/README.rst @@ -0,0 +1,201 @@ +====================== +Unittest xUnit reports +====================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:782b2ed22876a72d28e0e67c5ff949d6d104c2da4bd0cf36ca7dbf3597900604 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github + :target: https://github.com/OCA/server-tools/tree/17.0/odoo_test_xmlrunner + :alt: OCA/server-tools +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-tools-17-0/server-tools-17-0-odoo_test_xmlrunner + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module generate unittest reports using unittest-xml-reporting tool. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +Install python library https://pypi.org/project/unittest-xml-reporting/ + +The module is automatically installed on the Odoo instance. + +Usage +===== + +Run the native Odoo tests +------------------------- + +Run the native Odoo tests. See the `Odoo +documentation `__ +for more information. + +Gitlab CI usage example +~~~~~~~~~~~~~~~~~~~~~~~ + +Add the following job to your ``.gitlab-ci.yml`` file: + +.. code:: yaml + + + stages: + - test + + variables: + POSTGRES_DB: odoo + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoo + POSTGRES_HOST_AUTH_METHOD: trust + + test: + stage: test + image: + name: ghcr.io/oca/oca-ci/py3.10-odoo17.0:latest + services: + - name: postgres:15 + tags: + - gitlab-org-docker + script: + # install odoo and run tests + - oca_install_addons && oca_init_test_database && oca_run_tests + # generate coverage report + - coverage html -d htmlcov && coverage xml -o coverage.xml + # read line-rate from coverage.xml and print it as percentage + - total=$(grep -oP ']*line-rate="\K[0-9.]+' coverage.xml | head -n 1 | awk '{print $1 * 100}') && echo "total ${total}%" + coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' + artifacts: + paths: + - htmlcov/* + when: always + reports: + junit: test_results/*.xml + coverage_report: + coverage_format: cobertura + path: coverage.xml + +Github Actions usage example +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Add the following job to your ``.github/workflows/main.yml`` file: + +.. code:: yaml + + name: tests + + permissions: + contents: read + checks: write + id-token: write + + on: + push: + branches: ["main"] + tags: ["*"] + pull_request: + + jobs: + test: + runs-on: ubuntu-22.04 + container: ${{ matrix.container }} + name: ${{ matrix.name }} + strategy: + fail-fast: false + matrix: + include: + - container: ghcr.io/oca/oca-ci/py3.10-odoo17.0:latest + name: test with Odoo + services: + postgres: + image: postgres:12.0 + env: + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoo + POSTGRES_DB: odoo + ports: + - 5432:5432 + steps: + - uses: actions/checkout@v3 + with: + persist-credentials: false + - name: Install addons and dependencies + run: oca_install_addons + - name: Check licenses + run: manifestoo -d . check-licenses + - name: Check development status + run: manifestoo -d . check-dev-status --default-dev-status=Beta + - name: Initialize test db + run: oca_init_test_database + - name: Run tests + run: oca_run_tests + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + - name: Publish Test Report + uses: mikepenz/action-junit-report@v4 + if: success() || failure() # always run even if the previous step fails + with: + report_paths: 'test_results/*.xml' + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Smile + +Other credits +------------- + +- `Smile `__: + + - Martin Deconinck martin.deconinck@smile.fr + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/server-tools `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/odoo_test_xmlrunner/__init__.py b/odoo_test_xmlrunner/__init__.py new file mode 100644 index 00000000000..48ff93bf29f --- /dev/null +++ b/odoo_test_xmlrunner/__init__.py @@ -0,0 +1 @@ +from . import odoo_tests # F401 imported but unused diff --git a/odoo_test_xmlrunner/__manifest__.py b/odoo_test_xmlrunner/__manifest__.py new file mode 100644 index 00000000000..21e67c9a0e7 --- /dev/null +++ b/odoo_test_xmlrunner/__manifest__.py @@ -0,0 +1,19 @@ +{ + "name": "Unittest xUnit reports", + "version": "17.0.1.0.0", + "depends": ["base"], + "author": "Smile, Odoo Community Association (OCA)", + "license": "AGPL-3", + "summary": """ + This module override Odoo testing method to run them with xmlrunner tool. + """, + "website": "https://github.com/OCA/server-tools", + "category": "Tools", + "sequence": 20, + "auto_install": True, + "installable": True, + "application": False, + "external_dependencies": { + "python": ["unittest-xml-reporting"], + }, +} diff --git a/odoo_test_xmlrunner/odoo_tests/__init__.py b/odoo_test_xmlrunner/odoo_tests/__init__.py new file mode 100644 index 00000000000..4ad46195b0f --- /dev/null +++ b/odoo_test_xmlrunner/odoo_tests/__init__.py @@ -0,0 +1 @@ +from . import loader # F401 imported but unused diff --git a/odoo_test_xmlrunner/odoo_tests/loader.py b/odoo_test_xmlrunner/odoo_tests/loader.py new file mode 100644 index 00000000000..1e8ab4590d4 --- /dev/null +++ b/odoo_test_xmlrunner/odoo_tests/loader.py @@ -0,0 +1,33 @@ +import os +import threading + +import xmlrunner + +from odoo.tests import loader as odoo_loader +from odoo.tests.result import OdooTestResult +from odoo.tools import config + + +def new_run_suite(suite, module_name=None): + # Override : Get and create a config dir + test_result_directory = config.get("test_result_directory", "test_results") + # create test result directory if not exists + if not os.path.exists(test_result_directory): + os.makedirs(test_result_directory) + + # avoid dependency hell + from odoo.modules import module + + module.current_test = module_name + threading.current_thread().testing = True + results = OdooTestResult() + + # Override : XMLTestRunner to run the tests and generate XML reports + xmlrunner.XMLTestRunner(output=test_result_directory, verbosity=2).run(suite) + + threading.current_thread().testing = False + module.current_test = None + return results + + +odoo_loader.run_suite = new_run_suite diff --git a/odoo_test_xmlrunner/pyproject.toml b/odoo_test_xmlrunner/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/odoo_test_xmlrunner/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/odoo_test_xmlrunner/readme/CONFIGURATION.md b/odoo_test_xmlrunner/readme/CONFIGURATION.md new file mode 100644 index 00000000000..aa2c51f2d0a --- /dev/null +++ b/odoo_test_xmlrunner/readme/CONFIGURATION.md @@ -0,0 +1,2 @@ +Add to your odoo Configuration file: +- **test_result_directory** (default: *test_results*) : The path (created if not exists) where the reports will be written to. \ No newline at end of file diff --git a/odoo_test_xmlrunner/readme/CREDITS.md b/odoo_test_xmlrunner/readme/CREDITS.md new file mode 100644 index 00000000000..41c88d09352 --- /dev/null +++ b/odoo_test_xmlrunner/readme/CREDITS.md @@ -0,0 +1,2 @@ +* [Smile](https://smile.eu/fr): + * Martin Deconinck \ No newline at end of file diff --git a/odoo_test_xmlrunner/readme/DESCRIPTION.md b/odoo_test_xmlrunner/readme/DESCRIPTION.md new file mode 100644 index 00000000000..16d28d3c5f9 --- /dev/null +++ b/odoo_test_xmlrunner/readme/DESCRIPTION.md @@ -0,0 +1 @@ +This module generate unittest reports using unittest-xml-reporting tool. \ No newline at end of file diff --git a/odoo_test_xmlrunner/readme/INSTALL.md b/odoo_test_xmlrunner/readme/INSTALL.md new file mode 100644 index 00000000000..8079d04b1d7 --- /dev/null +++ b/odoo_test_xmlrunner/readme/INSTALL.md @@ -0,0 +1,3 @@ +Install python library https://pypi.org/project/unittest-xml-reporting/ + +The module is automatically installed on the Odoo instance. \ No newline at end of file diff --git a/odoo_test_xmlrunner/readme/USAGE.md b/odoo_test_xmlrunner/readme/USAGE.md new file mode 100644 index 00000000000..647f60df8fd --- /dev/null +++ b/odoo_test_xmlrunner/readme/USAGE.md @@ -0,0 +1,108 @@ + +## Run the native Odoo tests + +Run the native Odoo tests. See the [Odoo documentation](https://www.odoo.com/documentation/17.0/fr/developer/reference/backend/testing.html) for more information. + +### Gitlab CI usage example + +Add the following job to your `.gitlab-ci.yml` file: + +```yaml + +stages: + - test + +variables: + POSTGRES_DB: odoo + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoo + POSTGRES_HOST_AUTH_METHOD: trust + +test: + stage: test + image: + name: ghcr.io/oca/oca-ci/py3.10-odoo17.0:latest + services: + - name: postgres:15 + tags: + - gitlab-org-docker + script: + # install odoo and run tests + - oca_install_addons && oca_init_test_database && oca_run_tests + # generate coverage report + - coverage html -d htmlcov && coverage xml -o coverage.xml + # read line-rate from coverage.xml and print it as percentage + - total=$(grep -oP ']*line-rate="\K[0-9.]+' coverage.xml | head -n 1 | awk '{print $1 * 100}') && echo "total ${total}%" + coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' + artifacts: + paths: + - htmlcov/* + when: always + reports: + junit: test_results/*.xml + coverage_report: + coverage_format: cobertura + path: coverage.xml +``` +### Github Actions usage example + +Add the following job to your `.github/workflows/main.yml` file: + +```yaml +name: tests + +permissions: + contents: read + checks: write + id-token: write + +on: + push: + branches: ["main"] + tags: ["*"] + pull_request: + +jobs: + test: + runs-on: ubuntu-22.04 + container: ${{ matrix.container }} + name: ${{ matrix.name }} + strategy: + fail-fast: false + matrix: + include: + - container: ghcr.io/oca/oca-ci/py3.10-odoo17.0:latest + name: test with Odoo + services: + postgres: + image: postgres:12.0 + env: + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoo + POSTGRES_DB: odoo + ports: + - 5432:5432 + steps: + - uses: actions/checkout@v3 + with: + persist-credentials: false + - name: Install addons and dependencies + run: oca_install_addons + - name: Check licenses + run: manifestoo -d . check-licenses + - name: Check development status + run: manifestoo -d . check-dev-status --default-dev-status=Beta + - name: Initialize test db + run: oca_init_test_database + - name: Run tests + run: oca_run_tests + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + - name: Publish Test Report + uses: mikepenz/action-junit-report@v4 + if: success() || failure() # always run even if the previous step fails + with: + report_paths: 'test_results/*.xml' + +``` \ No newline at end of file diff --git a/odoo_test_xmlrunner/requirements.txt b/odoo_test_xmlrunner/requirements.txt new file mode 100644 index 00000000000..718199204e9 --- /dev/null +++ b/odoo_test_xmlrunner/requirements.txt @@ -0,0 +1 @@ +unittest-xml-reporting diff --git a/odoo_test_xmlrunner/static/description/index.html b/odoo_test_xmlrunner/static/description/index.html new file mode 100644 index 00000000000..e545c902885 --- /dev/null +++ b/odoo_test_xmlrunner/static/description/index.html @@ -0,0 +1,547 @@ + + + + + +Unittest xUnit reports + + + +
+

Unittest xUnit reports

+ + +

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

+

This module generate unittest reports using unittest-xml-reporting tool.

+

Table of contents

+ +
+

Installation

+

Install python library https://pypi.org/project/unittest-xml-reporting/

+

The module is automatically installed on the Odoo instance.

+
+
+

Usage

+
+

Run the native Odoo tests

+

Run the native Odoo tests. See the Odoo +documentation +for more information.

+
+

Gitlab CI usage example

+

Add the following job to your .gitlab-ci.yml file:

+
+stages:
+  - test
+
+variables:
+  POSTGRES_DB: odoo
+  POSTGRES_USER: odoo
+  POSTGRES_PASSWORD: odoo
+  POSTGRES_HOST_AUTH_METHOD: trust
+
+test:
+  stage: test
+  image:
+    name: ghcr.io/oca/oca-ci/py3.10-odoo17.0:latest
+  services:
+    - name: postgres:15
+  tags:
+    - gitlab-org-docker
+  script:
+    # install odoo and run tests
+    - oca_install_addons && oca_init_test_database && oca_run_tests
+    # generate coverage report
+    - coverage html -d htmlcov && coverage xml -o coverage.xml
+    # read line-rate from coverage.xml and print it as percentage
+    - total=$(grep -oP '<coverage[^>]*line-rate="\K[0-9.]+' coverage.xml | head -n 1 | awk '{print $1 * 100}') && echo "total ${total}%"
+  coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
+  artifacts:
+    paths:
+      - htmlcov/*
+    when: always
+    reports:
+      junit: test_results/*.xml
+      coverage_report:
+          coverage_format: cobertura
+          path: coverage.xml
+
+
+
+

Github Actions usage example

+

Add the following job to your .github/workflows/main.yml file:

+
+name: tests
+
+permissions:
+    contents: read
+    checks: write
+    id-token: write
+
+on:
+  push:
+    branches: ["main"]
+    tags: ["*"]
+  pull_request:
+
+jobs:
+  test:
+    runs-on: ubuntu-22.04
+    container: ${{ matrix.container }}
+    name: ${{ matrix.name }}
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - container: ghcr.io/oca/oca-ci/py3.10-odoo17.0:latest
+            name: test with Odoo
+    services:
+      postgres:
+        image: postgres:12.0
+        env:
+          POSTGRES_USER: odoo
+          POSTGRES_PASSWORD: odoo
+          POSTGRES_DB: odoo
+        ports:
+          - 5432:5432
+    steps:
+      - uses: actions/checkout@v3
+        with:
+          persist-credentials: false
+      - name: Install addons and dependencies
+        run: oca_install_addons
+      - name: Check licenses
+        run: manifestoo -d . check-licenses
+      - name: Check development status
+        run: manifestoo -d . check-dev-status --default-dev-status=Beta
+      - name: Initialize test db
+        run: oca_init_test_database
+      - name: Run tests
+        run: oca_run_tests
+      - uses: codecov/codecov-action@v4
+        with:
+          token: ${{ secrets.CODECOV_TOKEN }}
+      - name: Publish Test Report
+        uses: mikepenz/action-junit-report@v4
+        if: success() || failure() # always run even if the previous step fails
+        with:
+          report_paths: 'test_results/*.xml'
+
+
+
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Smile
  • +
+
+
+

Other credits

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/server-tools project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + From 68a6177be6727f978c7d3a0049cecef08ee5eb97 Mon Sep 17 00:00:00 2001 From: Florian Mounier Date: Thu, 21 Nov 2024 11:59:52 +0100 Subject: [PATCH 02/14] [BACKPORT] odoo_test_xmlrunner to 16.0 Also implement a better patch and merge test results. --- odoo_test_xmlrunner/README.rst | 20 +++--- odoo_test_xmlrunner/__init__.py | 2 +- odoo_test_xmlrunner/__manifest__.py | 2 +- odoo_test_xmlrunner/odoo_tests/__init__.py | 2 +- odoo_test_xmlrunner/odoo_tests/loader.py | 68 +++++++++++-------- odoo_test_xmlrunner/readme/CONFIGURATION.md | 2 +- odoo_test_xmlrunner/readme/CREDITS.md | 6 +- odoo_test_xmlrunner/readme/DESCRIPTION.md | 2 +- odoo_test_xmlrunner/readme/INSTALL.md | 2 +- odoo_test_xmlrunner/readme/USAGE.md | 2 +- .../static/description/index.html | 23 ++++--- 11 files changed, 79 insertions(+), 52 deletions(-) diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst index c8d5c9881e5..e4bd556217d 100644 --- a/odoo_test_xmlrunner/README.rst +++ b/odoo_test_xmlrunner/README.rst @@ -7,7 +7,7 @@ Unittest xUnit reports !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:782b2ed22876a72d28e0e67c5ff949d6d104c2da4bd0cf36ca7dbf3597900604 + !! source digest: sha256:c168ead1259f832fbcdbe238c9bd5a9eb692d3e0c712130ab2103e4a2dcba36b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -17,13 +17,13 @@ Unittest xUnit reports :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github - :target: https://github.com/OCA/server-tools/tree/17.0/odoo_test_xmlrunner + :target: https://github.com/OCA/server-tools/tree/16.0/odoo_test_xmlrunner :alt: OCA/server-tools .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-tools-17-0/server-tools-17-0-odoo_test_xmlrunner + :target: https://translation.odoo-community.org/projects/server-tools-16-0/server-tools-16-0-odoo_test_xmlrunner :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=16.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -164,7 +164,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -179,9 +179,13 @@ Authors Other credits ------------- -- `Smile `__: +- `Smile `__: - - Martin Deconinck martin.deconinck@smile.fr + - Martin Deconinck martin.deconinck@smile.fr + +- `Akretion `__: + + - Florian Mounier florian.mounier@akretion.com Maintainers ----------- @@ -196,6 +200,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/server-tools `_ project on GitHub. +This module is part of the `OCA/server-tools `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/odoo_test_xmlrunner/__init__.py b/odoo_test_xmlrunner/__init__.py index 48ff93bf29f..382130c7586 100644 --- a/odoo_test_xmlrunner/__init__.py +++ b/odoo_test_xmlrunner/__init__.py @@ -1 +1 @@ -from . import odoo_tests # F401 imported but unused +from . import odoo_tests # F401 imported but unused diff --git a/odoo_test_xmlrunner/__manifest__.py b/odoo_test_xmlrunner/__manifest__.py index 21e67c9a0e7..3425fb207e5 100644 --- a/odoo_test_xmlrunner/__manifest__.py +++ b/odoo_test_xmlrunner/__manifest__.py @@ -1,6 +1,6 @@ { "name": "Unittest xUnit reports", - "version": "17.0.1.0.0", + "version": "16.0.1.0.0", "depends": ["base"], "author": "Smile, Odoo Community Association (OCA)", "license": "AGPL-3", diff --git a/odoo_test_xmlrunner/odoo_tests/__init__.py b/odoo_test_xmlrunner/odoo_tests/__init__.py index 4ad46195b0f..571c37ecce6 100644 --- a/odoo_test_xmlrunner/odoo_tests/__init__.py +++ b/odoo_test_xmlrunner/odoo_tests/__init__.py @@ -1 +1 @@ -from . import loader # F401 imported but unused +from . import loader # F401 imported but unused diff --git a/odoo_test_xmlrunner/odoo_tests/loader.py b/odoo_test_xmlrunner/odoo_tests/loader.py index 1e8ab4590d4..297e54ceffa 100644 --- a/odoo_test_xmlrunner/odoo_tests/loader.py +++ b/odoo_test_xmlrunner/odoo_tests/loader.py @@ -1,33 +1,47 @@ import os -import threading +from unittest.mock import patch -import xmlrunner +from xmlrunner import XMLTestRunner +from xmlrunner.result import _XMLTestResult -from odoo.tests import loader as odoo_loader from odoo.tests.result import OdooTestResult +from odoo.tests.suite import OdooSuite from odoo.tools import config - -def new_run_suite(suite, module_name=None): - # Override : Get and create a config dir - test_result_directory = config.get("test_result_directory", "test_results") - # create test result directory if not exists - if not os.path.exists(test_result_directory): - os.makedirs(test_result_directory) - - # avoid dependency hell - from odoo.modules import module - - module.current_test = module_name - threading.current_thread().testing = True - results = OdooTestResult() - - # Override : XMLTestRunner to run the tests and generate XML reports - xmlrunner.XMLTestRunner(output=test_result_directory, verbosity=2).run(suite) - - threading.current_thread().testing = False - module.current_test = None - return results - - -odoo_loader.run_suite = new_run_suite +if config["test_enable"]: + unpatched_run = OdooSuite.run + + def run(self, result): + # Override : Get and create a config dir + test_result_directory = config.get("test_result_directory", "test_results") + # create test result directory if not exists + if not os.path.exists(test_result_directory): + os.makedirs(test_result_directory) + + # Suite run method will be called by the XMLTestRunner, + # so we need to run the original run method + with patch.object(self, "run", lambda result: unpatched_run(self, result)): + # Override : XMLTestRunner to run the tests and generate XML reports + results = XMLTestRunner( + output=test_result_directory, + verbosity=2, + ).run(self) + + result.update(results) + return result + + patch("odoo.tests.suite.OdooSuite.run", run).start() + + unpatched_update = OdooTestResult.update + + def update(self, other): + # Adapt _XMLTestResult to OdooTestResult + if isinstance(other, _XMLTestResult): + self.failures_count += len(other.failures) + self.errors_count += len(other.errors) + self.skipped += len(other.skipped) + self.testsRun += other.testsRun + else: + unpatched_update(self, other) + + patch("odoo.tests.result.OdooTestResult.update", update).start() diff --git a/odoo_test_xmlrunner/readme/CONFIGURATION.md b/odoo_test_xmlrunner/readme/CONFIGURATION.md index aa2c51f2d0a..ebd8c0c3852 100644 --- a/odoo_test_xmlrunner/readme/CONFIGURATION.md +++ b/odoo_test_xmlrunner/readme/CONFIGURATION.md @@ -1,2 +1,2 @@ Add to your odoo Configuration file: -- **test_result_directory** (default: *test_results*) : The path (created if not exists) where the reports will be written to. \ No newline at end of file +- **test_result_directory** (default: *test_results*) : The path (created if not exists) where the reports will be written to. diff --git a/odoo_test_xmlrunner/readme/CREDITS.md b/odoo_test_xmlrunner/readme/CREDITS.md index 41c88d09352..25c6a27a7d8 100644 --- a/odoo_test_xmlrunner/readme/CREDITS.md +++ b/odoo_test_xmlrunner/readme/CREDITS.md @@ -1,2 +1,4 @@ -* [Smile](https://smile.eu/fr): - * Martin Deconinck \ No newline at end of file +- [Smile](https://smile.eu/fr): + - Martin Deconinck +- [Akretion](https://akretion.com): + - Florian Mounier diff --git a/odoo_test_xmlrunner/readme/DESCRIPTION.md b/odoo_test_xmlrunner/readme/DESCRIPTION.md index 16d28d3c5f9..a6e2fc9ef35 100644 --- a/odoo_test_xmlrunner/readme/DESCRIPTION.md +++ b/odoo_test_xmlrunner/readme/DESCRIPTION.md @@ -1 +1 @@ -This module generate unittest reports using unittest-xml-reporting tool. \ No newline at end of file +This module generate unittest reports using unittest-xml-reporting tool. diff --git a/odoo_test_xmlrunner/readme/INSTALL.md b/odoo_test_xmlrunner/readme/INSTALL.md index 8079d04b1d7..bd127a850b9 100644 --- a/odoo_test_xmlrunner/readme/INSTALL.md +++ b/odoo_test_xmlrunner/readme/INSTALL.md @@ -1,3 +1,3 @@ Install python library https://pypi.org/project/unittest-xml-reporting/ -The module is automatically installed on the Odoo instance. \ No newline at end of file +The module is automatically installed on the Odoo instance. diff --git a/odoo_test_xmlrunner/readme/USAGE.md b/odoo_test_xmlrunner/readme/USAGE.md index 647f60df8fd..6e22e01c08a 100644 --- a/odoo_test_xmlrunner/readme/USAGE.md +++ b/odoo_test_xmlrunner/readme/USAGE.md @@ -105,4 +105,4 @@ jobs: with: report_paths: 'test_results/*.xml' -``` \ No newline at end of file +``` diff --git a/odoo_test_xmlrunner/static/description/index.html b/odoo_test_xmlrunner/static/description/index.html index e545c902885..c71e686f9ed 100644 --- a/odoo_test_xmlrunner/static/description/index.html +++ b/odoo_test_xmlrunner/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -366,9 +367,9 @@

Unittest xUnit reports

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:782b2ed22876a72d28e0e67c5ff949d6d104c2da4bd0cf36ca7dbf3597900604 +!! source digest: sha256:c168ead1259f832fbcdbe238c9bd5a9eb692d3e0c712130ab2103e4a2dcba36b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

This module generate unittest reports using unittest-xml-reporting tool.

Table of contents

@@ -511,7 +512,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -529,16 +530,22 @@

Other credits

  • Martin Deconinck martin.deconinck@smile.fr
  • +
  • Akretion: +
  • Maintainers

    This module is maintained by the OCA.

    -Odoo Community Association + +Odoo Community Association +

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    -

    This module is part of the OCA/server-tools project on GitHub.

    +

    This module is part of the OCA/server-tools project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    From 92fa9a40202fc839b88b241367795ca7ba11a6c3 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 27 Dec 2024 09:22:18 +0000 Subject: [PATCH 03/14] [UPD] Update odoo_test_xmlrunner.pot --- odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot diff --git a/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot b/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot new file mode 100644 index 00000000000..78d58d53fe0 --- /dev/null +++ b/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot @@ -0,0 +1,13 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" From a13bc48c348ea593ea565f44d143d974d78c6694 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 27 Dec 2024 09:30:37 +0000 Subject: [PATCH 04/14] [BOT] post-merge updates --- odoo_test_xmlrunner/static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 odoo_test_xmlrunner/static/description/icon.png diff --git a/odoo_test_xmlrunner/static/description/icon.png b/odoo_test_xmlrunner/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 From 054cee2bd2ab3e9ae66355a197658d82a8488a17 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Wed, 8 Jan 2025 23:24:59 +0100 Subject: [PATCH 05/14] [FIX] odoo_test_xmlrunner: set auto_install to False. - It doesn't make sense to make this module auto installable. - As the module depends only on 'base' AND introduces a new external dependency to an extra library (unittest-xml-reporting) all the instances that are cloning server-tools repo will have trouble, because it will not be possible to install this module, due to missing dependency --- odoo_test_xmlrunner/README.rst | 8 ++++---- odoo_test_xmlrunner/__manifest__.py | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst index e4bd556217d..b3d6961392d 100644 --- a/odoo_test_xmlrunner/README.rst +++ b/odoo_test_xmlrunner/README.rst @@ -179,13 +179,13 @@ Authors Other credits ------------- -- `Smile `__: +- `Smile `__: - - Martin Deconinck martin.deconinck@smile.fr + - Martin Deconinck martin.deconinck@smile.fr -- `Akretion `__: +- `Akretion `__: - - Florian Mounier florian.mounier@akretion.com + - Florian Mounier florian.mounier@akretion.com Maintainers ----------- diff --git a/odoo_test_xmlrunner/__manifest__.py b/odoo_test_xmlrunner/__manifest__.py index 3425fb207e5..09358b62e11 100644 --- a/odoo_test_xmlrunner/__manifest__.py +++ b/odoo_test_xmlrunner/__manifest__.py @@ -10,7 +10,6 @@ "website": "https://github.com/OCA/server-tools", "category": "Tools", "sequence": 20, - "auto_install": True, "installable": True, "application": False, "external_dependencies": { From a2ae5b8adf390a829a9a8eee5f2997a22102c990 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 8 Jan 2025 22:34:38 +0000 Subject: [PATCH 06/14] [BOT] post-merge updates --- odoo_test_xmlrunner/README.rst | 10 +++++----- odoo_test_xmlrunner/__manifest__.py | 2 +- odoo_test_xmlrunner/static/description/index.html | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst index b3d6961392d..4dc21559332 100644 --- a/odoo_test_xmlrunner/README.rst +++ b/odoo_test_xmlrunner/README.rst @@ -7,7 +7,7 @@ Unittest xUnit reports !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:c168ead1259f832fbcdbe238c9bd5a9eb692d3e0c712130ab2103e4a2dcba36b + !! source digest: sha256:dc5901a41067fac6a375c2ba99ceaf485afc9273c2248b73255cc1b99e6fddcf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -179,13 +179,13 @@ Authors Other credits ------------- -- `Smile `__: +- `Smile `__: - - Martin Deconinck martin.deconinck@smile.fr + - Martin Deconinck martin.deconinck@smile.fr -- `Akretion `__: +- `Akretion `__: - - Florian Mounier florian.mounier@akretion.com + - Florian Mounier florian.mounier@akretion.com Maintainers ----------- diff --git a/odoo_test_xmlrunner/__manifest__.py b/odoo_test_xmlrunner/__manifest__.py index 09358b62e11..88569e6be15 100644 --- a/odoo_test_xmlrunner/__manifest__.py +++ b/odoo_test_xmlrunner/__manifest__.py @@ -1,6 +1,6 @@ { "name": "Unittest xUnit reports", - "version": "16.0.1.0.0", + "version": "16.0.1.0.1", "depends": ["base"], "author": "Smile, Odoo Community Association (OCA)", "license": "AGPL-3", diff --git a/odoo_test_xmlrunner/static/description/index.html b/odoo_test_xmlrunner/static/description/index.html index c71e686f9ed..f2d8d581973 100644 --- a/odoo_test_xmlrunner/static/description/index.html +++ b/odoo_test_xmlrunner/static/description/index.html @@ -367,7 +367,7 @@

    Unittest xUnit reports

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:c168ead1259f832fbcdbe238c9bd5a9eb692d3e0c712130ab2103e4a2dcba36b +!! source digest: sha256:dc5901a41067fac6a375c2ba99ceaf485afc9273c2248b73255cc1b99e6fddcf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    This module generate unittest reports using unittest-xml-reporting tool.

    From af7e8ec3acc95ded070ec3e5419a55f09b8ae88b Mon Sep 17 00:00:00 2001 From: mymage Date: Fri, 10 Jan 2025 12:29:52 +0000 Subject: [PATCH 07/14] Added translation using Weblate (Italian) --- odoo_test_xmlrunner/i18n/it.po | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 odoo_test_xmlrunner/i18n/it.po diff --git a/odoo_test_xmlrunner/i18n/it.po b/odoo_test_xmlrunner/i18n/it.po new file mode 100644 index 00000000000..73388557f6d --- /dev/null +++ b/odoo_test_xmlrunner/i18n/it.po @@ -0,0 +1,14 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" From 376d158ad1f8f710d5828b4da70376754718b643 Mon Sep 17 00:00:00 2001 From: Florian Mounier Date: Tue, 30 Sep 2025 15:18:45 +0200 Subject: [PATCH 08/14] [MIG] odoo_test_xmlrunner: Migration to 18.0 --- odoo_test_xmlrunner/README.rst | 10 +++++----- odoo_test_xmlrunner/__manifest__.py | 2 +- odoo_test_xmlrunner/static/description/index.html | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst index 4dc21559332..c3bef9dafd2 100644 --- a/odoo_test_xmlrunner/README.rst +++ b/odoo_test_xmlrunner/README.rst @@ -17,13 +17,13 @@ Unittest xUnit reports :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github - :target: https://github.com/OCA/server-tools/tree/16.0/odoo_test_xmlrunner + :target: https://github.com/OCA/server-tools/tree/18.0/odoo_test_xmlrunner :alt: OCA/server-tools .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-tools-16-0/server-tools-16-0-odoo_test_xmlrunner + :target: https://translation.odoo-community.org/projects/server-tools-18-0/server-tools-18-0-odoo_test_xmlrunner :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -164,7 +164,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -200,6 +200,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/server-tools `_ project on GitHub. +This module is part of the `OCA/server-tools `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/odoo_test_xmlrunner/__manifest__.py b/odoo_test_xmlrunner/__manifest__.py index 88569e6be15..395b79fc803 100644 --- a/odoo_test_xmlrunner/__manifest__.py +++ b/odoo_test_xmlrunner/__manifest__.py @@ -1,6 +1,6 @@ { "name": "Unittest xUnit reports", - "version": "16.0.1.0.1", + "version": "18.0.1.0.0", "depends": ["base"], "author": "Smile, Odoo Community Association (OCA)", "license": "AGPL-3", diff --git a/odoo_test_xmlrunner/static/description/index.html b/odoo_test_xmlrunner/static/description/index.html index f2d8d581973..cb3de94c822 100644 --- a/odoo_test_xmlrunner/static/description/index.html +++ b/odoo_test_xmlrunner/static/description/index.html @@ -369,7 +369,7 @@

    Unittest xUnit reports

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:dc5901a41067fac6a375c2ba99ceaf485afc9273c2248b73255cc1b99e6fddcf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    +

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    This module generate unittest reports using unittest-xml-reporting tool.

    Table of contents

    @@ -512,7 +512,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -545,7 +545,7 @@

    Maintainers

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    -

    This module is part of the OCA/server-tools project on GitHub.

    +

    This module is part of the OCA/server-tools project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    From e23bec2027c703fbc236b7001325625013791ade Mon Sep 17 00:00:00 2001 From: Florian Mounier Date: Tue, 30 Sep 2025 15:19:40 +0200 Subject: [PATCH 09/14] [FIX] odoo_test_xmlrunner: Import odoo tests only in test mode This removes the new warning in 18.0 --- odoo_test_xmlrunner/odoo_tests/loader.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/odoo_test_xmlrunner/odoo_tests/loader.py b/odoo_test_xmlrunner/odoo_tests/loader.py index 297e54ceffa..a6f96102bfd 100644 --- a/odoo_test_xmlrunner/odoo_tests/loader.py +++ b/odoo_test_xmlrunner/odoo_tests/loader.py @@ -1,14 +1,15 @@ import os from unittest.mock import patch -from xmlrunner import XMLTestRunner -from xmlrunner.result import _XMLTestResult - -from odoo.tests.result import OdooTestResult -from odoo.tests.suite import OdooSuite from odoo.tools import config if config["test_enable"]: + from xmlrunner import XMLTestRunner + from xmlrunner.result import _XMLTestResult + + from odoo.tests.result import OdooTestResult + from odoo.tests.suite import OdooSuite + unpatched_run = OdooSuite.run def run(self, result): From baad7b6bf8de0e5a895fcf1c856ce4daf4e138bf Mon Sep 17 00:00:00 2001 From: Florian Mounier Date: Tue, 30 Sep 2025 15:21:27 +0200 Subject: [PATCH 10/14] [FIX] odoo_test_xmlrunner: Patch manually to avoid patch being restored at test end --- odoo_test_xmlrunner/odoo_tests/loader.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/odoo_test_xmlrunner/odoo_tests/loader.py b/odoo_test_xmlrunner/odoo_tests/loader.py index a6f96102bfd..5ce61cc4e23 100644 --- a/odoo_test_xmlrunner/odoo_tests/loader.py +++ b/odoo_test_xmlrunner/odoo_tests/loader.py @@ -1,5 +1,4 @@ import os -from unittest.mock import patch from odoo.tools import config @@ -21,17 +20,21 @@ def run(self, result): # Suite run method will be called by the XMLTestRunner, # so we need to run the original run method - with patch.object(self, "run", lambda result: unpatched_run(self, result)): - # Override : XMLTestRunner to run the tests and generate XML reports + unpatched_sub_run = self.run + self.run = lambda result, debug=False: unpatched_run(self, result, debug) + # Override : XMLTestRunner to run the tests and generate XML reports + try: results = XMLTestRunner( output=test_result_directory, verbosity=2, ).run(self) + finally: + self.run = unpatched_sub_run result.update(results) return result - patch("odoo.tests.suite.OdooSuite.run", run).start() + OdooSuite.run = run unpatched_update = OdooTestResult.update @@ -45,4 +48,4 @@ def update(self, other): else: unpatched_update(self, other) - patch("odoo.tests.result.OdooTestResult.update", update).start() + OdooTestResult.update = update From 868f91d019b8e7aa5443ab52e058196e41c8645c Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 28 Jan 2026 11:11:40 +0000 Subject: [PATCH 11/14] [UPD] Update odoo_test_xmlrunner.pot --- odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot b/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot index 78d58d53fe0..aadee09bfed 100644 --- a/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot +++ b/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From ada7007d7a00573185fe9633d38ee132aefd8e71 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 28 Jan 2026 11:20:06 +0000 Subject: [PATCH 12/14] [BOT] post-merge updates --- odoo_test_xmlrunner/README.rst | 8 +++-- .../static/description/index.html | 36 +++++++++++-------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst index c3bef9dafd2..9c7913840b0 100644 --- a/odoo_test_xmlrunner/README.rst +++ b/odoo_test_xmlrunner/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ====================== Unittest xUnit reports ====================== @@ -7,13 +11,13 @@ Unittest xUnit reports !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:dc5901a41067fac6a375c2ba99ceaf485afc9273c2248b73255cc1b99e6fddcf + !! source digest: sha256:43d1f3fd22d63205a1755865145c5af7d858b24ac2c1683e7dfd8e791535373f !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github diff --git a/odoo_test_xmlrunner/static/description/index.html b/odoo_test_xmlrunner/static/description/index.html index cb3de94c822..e71f15fb742 100644 --- a/odoo_test_xmlrunner/static/description/index.html +++ b/odoo_test_xmlrunner/static/description/index.html @@ -3,7 +3,7 @@ -Unittest xUnit reports +README.rst -
    -

    Unittest xUnit reports

    +
    + + +Odoo Community Association + +
    +

    Unittest xUnit reports

    -

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    +

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    This module generate unittest reports using unittest-xml-reporting tool.

    Table of contents

    @@ -393,19 +398,19 @@

    Unittest xUnit reports

    -

    Installation

    +

    Installation

    Install python library https://pypi.org/project/unittest-xml-reporting/

    The module is automatically installed on the Odoo instance.

    -

    Usage

    +

    Usage

    -

    Run the native Odoo tests

    +

    Run the native Odoo tests

    Run the native Odoo tests. See the Odoo documentation for more information.

    -

    Gitlab CI usage example

    +

    Gitlab CI usage example

    Add the following job to your .gitlab-ci.yml file:

     stages:
    @@ -445,7 +450,7 @@ 

    Gitlab CI usage example

    -

    Github Actions usage example

    +

    Github Actions usage example

    Add the following job to your .github/workflows/main.yml file:

     name: tests
    @@ -508,7 +513,7 @@ 

    Github Actions usage example<

    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -516,15 +521,15 @@

    Bug Tracker

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Smile
    -

    Other credits

    +

    Other credits

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -550,5 +555,6 @@

    Maintainers

    +
    From 5f9d409b21a32c02ae3bd7e9a3c3a3595b23708b Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Wed, 15 Apr 2026 12:48:04 +0100 Subject: [PATCH 13/14] [IMP] odoo_test_xmlrunner: pre-commit auto fixes --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index dfd6b25509f..3af8ad258dc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,4 @@ dataclasses numpy odoorpc openupgradelib +unittest-xml-reporting From 103260f3c257606edb4e0edbd56bd4a8c6e150e3 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Wed, 15 Apr 2026 13:02:57 +0100 Subject: [PATCH 14/14] [MIG] odoo_test_xmlrunner: Migration to 19.0 --- odoo_test_xmlrunner/README.rst | 21 ++++++++++++++----- odoo_test_xmlrunner/__manifest__.py | 3 ++- .../static/description/index.html | 8 ++++--- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst index 9c7913840b0..c3dae2dc164 100644 --- a/odoo_test_xmlrunner/README.rst +++ b/odoo_test_xmlrunner/README.rst @@ -21,13 +21,13 @@ Unittest xUnit reports :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github - :target: https://github.com/OCA/server-tools/tree/18.0/odoo_test_xmlrunner + :target: https://github.com/OCA/server-tools/tree/19.0/odoo_test_xmlrunner :alt: OCA/server-tools .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-tools-18-0/server-tools-18-0-odoo_test_xmlrunner + :target: https://translation.odoo-community.org/projects/server-tools-19-0/server-tools-19-0-odoo_test_xmlrunner :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -168,7 +168,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -204,6 +204,17 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/server-tools `_ project on GitHub. +.. |maintainer-yajo| image:: https://github.com/yajo.png?size=40px + :target: https://github.com/yajo + :alt: yajo +.. |maintainer-rafaelbn| image:: https://github.com/rafaelbn.png?size=40px + :target: https://github.com/rafaelbn + :alt: rafaelbn + +Current `maintainers `__: + +|maintainer-yajo| |maintainer-rafaelbn| + +This module is part of the `OCA/server-tools `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/odoo_test_xmlrunner/__manifest__.py b/odoo_test_xmlrunner/__manifest__.py index 395b79fc803..b9f65b75f54 100644 --- a/odoo_test_xmlrunner/__manifest__.py +++ b/odoo_test_xmlrunner/__manifest__.py @@ -1,6 +1,6 @@ { "name": "Unittest xUnit reports", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "depends": ["base"], "author": "Smile, Odoo Community Association (OCA)", "license": "AGPL-3", @@ -12,6 +12,7 @@ "sequence": 20, "installable": True, "application": False, + "maintainers": ["yajo", "rafaelbn"], "external_dependencies": { "python": ["unittest-xml-reporting"], }, diff --git a/odoo_test_xmlrunner/static/description/index.html b/odoo_test_xmlrunner/static/description/index.html index e71f15fb742..faa7ab6237b 100644 --- a/odoo_test_xmlrunner/static/description/index.html +++ b/odoo_test_xmlrunner/static/description/index.html @@ -374,7 +374,7 @@

    Unittest xUnit reports

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:43d1f3fd22d63205a1755865145c5af7d858b24ac2c1683e7dfd8e791535373f !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    +

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    This module generate unittest reports using unittest-xml-reporting tool.

    Table of contents

    @@ -517,7 +517,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -550,7 +550,9 @@

    Maintainers

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    -

    This module is part of the OCA/server-tools project on GitHub.

    +

    Current maintainers:

    +

    yajo rafaelbn

    +

    This module is part of the OCA/server-tools project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.