Name: [FIX] viin_brand_common, web_responsive, viin_brand_mail, to_backend_theme: keep brand CSS out of core test bundles - Check the quality with Pylint: from test_lint to test_pylint

State: Killed finished in 18m

PR State: open

PR Author: David Tran

PR Author Email:

PR: #673

Committer: David Tran

Committer Email: david.tran@tvtmarine.com

Commit: f8038c2c01bd0de302eae2017d09b5583e251c69

Description:

                                [FIX] to_backend_theme: drop own SCSS from core's Hoot/QUnit bundles

Both web.assets_unit_tests_setup (core's Hoot test-setup bundle) and
web.tests_assets (the legacy QUnit bundle) carry
('include', 'web.assets_backend') and ('include', 'web.assets_backend_lazy'),
declared in Odoo core's own addons/web/__manifest__.py. That pulled
to_backend_theme's own backend-theme SCSS straight into core's own
unit-test pages, so several of core's own tests were measuring
to_backend_theme's styling instead of core's own defaults.

Add explicit ('remove', <path>) entries for all 7 of this module's
own SCSS files, spanning both source bundles
(web.assets_backend / web.assets_backend_lazy), to both TEST-ONLY
bundle keys in this module's own manifest. web.assets_backend and
web.assets_backend_lazy themselves (the real webclient) are untouched
- AssetPaths.remove() operates on the accumulated per-bundle path
list, not on the source bundle that contributed it. Confirmed both
statically (zero diff on either production bundle key) and live (the
two test bundles now resolve zero of this module's SCSS paths while
the production bundles still resolve all of them, unchanged, and both
test bundles still compile clean with zero errors).

Manifest-only change - this module has no test-page CSS shim to
remove.
                                

Branch: 18.0

Age:

Up-time:

Odoo 18 Test Suite Using Docker

Check the quality with Pylint: from test_lint to test_pylint

  • install_module test_lint,test_pylint
  • exec_odoo --db_port 5432 --log-level=test --max-cron-threads=0 --load=base,web,to_base --stop-after-init --test-enable --test-tags=/test_lint,/test_pylint,/test_lint,/test_pylint,-:.test_pofiles_string_formatting
Create Date Level Message
08/22/2026 19:50:05 INFO
Using Docker Image Odoo 18 Ubuntu 24.04 Python 3.12:

FROM ubuntu:noble

ENV LANG C.UTF-8
ENV ODOO_TEST_FAILURE_RETRIES=2

# Retrieve the target architecture to install the correct wkhtmltopdf package
ARG TARGETARCH

USER root

SHELL ["/bin/bash", "-c"]

# Install debian packages
RUN set -x ; \
apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends apt-transport-https build-essential ca-certificates curl file fonts-freefont-ttf fonts-noto-cjk gawk gnupg gsfonts libldap2-dev libjpeg9-dev libsasl2-dev libxslt1-dev lsb-release npm ocrmypdf sed sudo unzip xfonts-75dpi zip zlib1g-dev software-properties-common git \
&& rm -rf /var/lib/apt/lists/*

# Install Python3 packages
RUN set -x ; \
apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends publicsuffix python3 flake8 python3-dbfread python3-dev python3-gevent python3-pip python3-setuptools python3-wheel python3-markdown python3-mock python3-phonenumbers python3-websocket python3-google-auth libpq-dev pylint python3-jwt python3-asn1crypto python3-html2text python3-suds python3-xmlsec \
&& rm -rf /var/lib/apt/lists/*

# Install wkhtml
RUN curl -o xfonts-base.deb http://archive.ubuntu.com/ubuntu/pool/main/x/xfonts-base/xfonts-base_1.0.5+nmu1_all.deb && dpkg -i xfonts-base.deb
RUN curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb \
&& apt-get install -y --no-install-recommends ./wkhtmltox.deb \
&& rm -rf /var/lib/apt/lists/* wkhtmltox.deb xfonts-base.deb

# Install Odoo:Depends
ADD https://raw.githubusercontent.com/brendangregg/FlameGraph/master/flamegraph.pl /usr/local/bin/flamegraph.pl
RUN chmod +rx /usr/local/bin/flamegraph.pl
# Github bị 429, ADD https://raw.githubusercontent.com/Viindoo/odoo/18.0/debian/control /tmp/control.txt
ADD https://github.com/royle-vietnam/odoo/releases/download/odoo/control2 /tmp/control.txt
RUN apt-get update \
&& sed -n '/^Depends:/,/^[A-Z]/p' /tmp/control.txt \
| awk '/^ [a-z]/ { gsub(/,/,"") ; print $1 }' | sort -u \
| egrep -v 'postgresql-client' \
| sed 's/python-imaging/python-pil/'| sed 's/python-pypdf/python-pypdf2/' | sed 's/python3-lxml-html-clean/python3-lxml/' \
| DEBIAN_FRONTEND=noninteractive xargs apt-get install -y -qq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --break-system-packages --no-cache-dir setuptools wheel && \
python3 -m pip install --break-system-packages coverage==7.4.4 flamegraph

# install latest postgresql-client
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main' > /etc/apt/sources.list.d/pgdg.list \
&& GNUPGHOME="$(mktemp -d)" \
&& export GNUPGHOME \
&& repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \
&& gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${repokey}" \
&& gpg --batch --armor --export "${repokey}" > /etc/apt/trusted.gpg.d/pgdg.gpg.asc \
&& gpgconf --kill all \
&& rm -rf "$GNUPGHOME" \
&& apt-get update \
&& apt-get install --no-install-recommends -y postgresql-client \
&& rm -f /etc/apt/sources.list.d/pgdg.list \
&& rm -rf /var/lib/apt/lists/*

# Install Google Chrome
ARG CHROME_VERSION=150.0.7871.114

RUN set -eux; \
echo 'repo_add_once="false"' > /etc/default/google-chrome; \
curl -sSLf "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_VERSION}-1_amd64.deb" \
-o /tmp/chrome.deb; \
apt-get update; \
apt-get -y install --no-install-recommends /tmp/chrome.deb; \
apt-mark hold google-chrome-stable; \
rm -f /tmp/chrome.deb /etc/apt/sources.list.d/google-chrome.list; \
rm -rf /var/lib/apt/lists/*; \
google-chrome --version | grep -F "${CHROME_VERSION}"

# Install phantomjs
RUN curl -sSL https://nightly.odoo.com/resources/phantomjs.tar.bz2 -o /tmp/phantomjs.tar.bz2 \
&& tar xvfO /tmp/phantomjs.tar.bz2 phantomjs-2.1.1-linux-x86_64/bin/phantomjs > /usr/local/bin/phantomjs \
&& chmod +x /usr/local/bin/phantomjs \
&& rm -f /tmp/phantomjs.tar.bz2

ENV PIP_BREAK_SYSTEM_PACKAGES=1

# Github bị 429, ADD https://raw.githubusercontent.com/Viindoo/odoo/18.0/requirements.txt /root/requirements.txt
ADD https://github.com/royle-vietnam/odoo/releases/download/odoo/requirements.txt /root/requirements.txt
RUN python3 -m pip install --break-system-packages --no-cache-dir setuptools wheel && \
python3 -m pip install --break-system-packages --upgrade --force-reinstall --ignore-installed --no-cache-dir -r /root/requirements.txt && \
python3 -m pip install --no-cache-dir ebaysdk==2.1.5 pdf417gen==0.7.1

RUN python3 -m pip install --break-system-packages --no-cache-dir requests pyOpenSSL

# Install debian packages
RUN set -x ; \
apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openssl iputils-ping openssh-client chromium-browser \
&& rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --no-cache-dir --upgrade websocket-client==1.2.3 flake8==6.1.0
#RUN python3 -m pip uninstall pylint pylint-odoo isort Pygments -y
RUN python3 -m pip install --break-system-packages --upgrade --force-reinstall --ignore-installed --no-cache-dir --upgrade pylint-odoo==9.0.5
RUN python3 -m pip install --break-system-packages --upgrade --force-reinstall --ignore-installed --no-cache-dir --upgrade Pygments==2.15.0 --no-deps

# Install nodejs
RUN curl -fsSLO --compressed "https://nodejs.org/dist/v18.20.0/node-v18.20.0-linux-x64.tar.xz" \
&& tar -xJf "node-v18.20.0-linux-x64.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& rm "node-v18.20.0-linux-x64.tar.xz" \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs

RUN npm install -g rtlcss@3.4.0 es-check@6.0.0 eslint@8.57.1 prettier@2.7.1 eslint-config-prettier@8.5.0 eslint-plugin-prettier@4.2.1
# Tránh warning do bug của ubuntu
RUN rm -rf /usr/lib/python3.12/dist-packages/charset_normalizer-3.3.2.dist-info

# Install cloc package
RUN set -x ; \
apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cloc pv \
&& rm -rf /var/lib/apt/lists/*
08/22/2026 19:50:05 INFO
Check the quality with Pylint: from test_lint to test_pylint:
Command: install_module args: test_lint,test_pylint
08/22/2026 19:50:05 INFO
Check the quality with Pylint: from test_lint to test_pylint:
Command: exec_odoo args: --db_port 5432 --log-level=test --max-cron-threads=0 --load=base,web,to_base --stop-after-init --test-enable --test-tags=/test_lint,/test_pylint,/test_lint,/test_pylint,-:.test_pofiles_string_formatting
08/22/2026 19:50:05 INFO
Docker command:
cd /data/build; python3 -m pip install --user --no-cache-dir --progress-bar off -r Viindoo-tvtmaaddons-18.0/requirements.txt && python3 -m pip install --user --no-cache-dir --progress-bar off -r Viindoo-erponline-enterprise-18.0/requirements.txt && python3 Viindoo-odoo-18.0/odoo-bin --addons-path Viindoo-odoo-18.0/odoo/addons,Viindoo-odoo-18.0/addons,Viindoo-tvtmaaddons-18.0,Viindoo-erponline-enterprise-18.0,rb-f8038c2-224153 -d rb-f8038c2-224153-406836 --data-dir /data/build/datadir -i test_lint,test_pylint --db_port 5432 --log-level=test --max-cron-threads=0 --load=base,web,to_base --stop-after-init --test-enable --test-tags=/test_lint,/test_pylint,/test_lint,/test_pylint,-:.test_pofiles_string_formatting ;
08/22/2026 19:50:05 INFO
Container rb-f8038c2-224153-406836 started !
08/22/2026 20:10:50 INFO
Container rb-f8038c2-224153-406836 stopped !
08/22/2026 20:10:50 INFO
Cleaning all resource
08/22/2026 20:10:50 INFO
Cleanup finished