diff --git a/tests/__init__.py b/tests/__init__.py index f2f1be72..e3372f2b 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -92,8 +92,115 @@ def compose_test(self, workdir, sub_env, *commands): def test_addons_filtered(self): """Test addons filtering with ``ONLY`` keyword in ``addons.yaml``.""" + project_dir = join(SCAFFOLDINGS_DIR, "dotd_ge_16") + for sub_env in matrix(odoo_skip={"16.0", "17.0"}): + self.compose_test( + project_dir, + dict(sub_env, DBNAME="prod"), + ("test", "-e", "auto/addons/web"), + ("test", "-e", "auto/addons/private_addon"), + ( + "bash", + "-xc", + 'test "$(addons list -p)" == disabled_addon,private_addon', + ), + ("bash", "-xc", 'test "$(addons list -ip)" == private_addon'), + ("bash", "-xc", "addons list -c | grep ,crm,"), + # absent_addon is missing and should fail + ("bash", "-xc", "! addons list -px"), + # Test addon inclusion, exclusion, dependencies... + ( + "bash", + "-xc", + 'test "$(addons list -dw private_addon)" == base,dummy_addon,website', + ), + ( + "bash", + "-xc", + 'test "$(addons list -dwprivate_addon -Wwebsite)" == base,dummy_addon', + ), + ( + "bash", + "-xc", + 'test "$(addons list -dw private_addon -W dummy_addon)" == base,website', + ), + ( + "bash", + "-xc", + 'test "$(addons list -nd)" == base,iap', + ), + ( + "bash", + "-xc", + 'test "$(addons list --enterprise)" == make_odoo_rich', + ), + ) + self.compose_test( + project_dir, + dict(sub_env, DBNAME="limited_private"), + ("test", "-e", "auto/addons/web"), + ("test", "!", "-e", "auto/addons/private_addon"), + ("bash", "-xc", 'test -z "$(addons list -p)"'), + ( + "bash", + "-xc", + '[ "$(addons list -s. -pwfake1 -wfake2)" == fake1.fake2 ]', + ), + ("bash", "-xc", "! addons list -wrepeat -Wrepeat"), + ("bash", "-xc", "addons list -c | grep ,crm,"), + ) + self.compose_test( + project_dir, + dict(sub_env, DBNAME="limited_core"), + ("test", "!", "-e", "auto/addons/web"), + ("test", "!", "-e", "auto/addons/private_addon"), + ("bash", "-xc", 'test -z "$(addons list -p)"'), + ("bash", "-xc", 'test "$(addons list -c)" == crm,sale'), + ) + self.compose_test( + project_dir, + dict(sub_env, DBNAME="prod"), + ("bash", "-xc", 'test "$(addons list -ped)" == base,web,website'), + # ``dummy_addon`` and ``private_addon`` exist + ("test", "-d", "auto/addons/dummy_addon"), + ("test", "-h", "auto/addons/dummy_addon"), + ("test", "-f", "auto/addons/dummy_addon/__init__.py"), + ("test", "-e", "auto/addons/dummy_addon"), + # Addon from extra repo takes higher priority than core version + ("realpath", "auto/addons/product"), + ( + "bash", + "-xc", + 'test "$(realpath auto/addons/product)" == ' + "/opt/odoo/custom/src/other-doodba/odoo/src/private/product", + ), + ("bash", "-xc", 'test "$(addons list -e)" == dummy_addon,product'), + ) + self.compose_test( + project_dir, + dict(sub_env, DBNAME="limited_private"), + ("test", "-e", "auto/addons/dummy_addon"), + ("bash", "-xc", 'test "$(addons list -e)" == dummy_addon,product'), + ) + self.compose_test( + project_dir, + dict(sub_env, DBNAME="limited_core"), + ("test", "-e", "auto/addons/dummy_addon"), + ( + "bash", + "-xc", + '[ "$(addons list -s. -pwfake1 -wfake2)" == fake1.fake2 ]', + ), + ("bash", "-xc", 'test "$(addons list -e)" == dummy_addon,product'), + ("bash", "-xc", 'test "$(addons list -c)" == crm,sale'), + ("bash", "-xc", 'test "$(addons list -cWsale)" == crm'), + ) + + def test_addons_filtered_ge_16(self): + """Test addons filtering with ``ONLY`` keyword in ``addons.yaml``. + Only for versions greater or equal to 16""" project_dir = join(SCAFFOLDINGS_DIR, "dotd") - for sub_env in matrix(): + for sub_env in matrix(odoo_skip={"11.0", "12.0", "13.0", "14.0", "15.0"}): self.compose_test( project_dir, dict(sub_env, DBNAME="prod"), @@ -367,7 +474,7 @@ def test_addons_env_double(self): def test_dotd(self): """Test environment with common ``*.d`` directories.""" - for sub_env in matrix(): + for sub_env in matrix(odoo_skip={"16.0", "17.0"}): self.compose_test( join(SCAFFOLDINGS_DIR, "dotd"), sub_env, @@ -406,10 +513,97 @@ def test_dotd(self): ("--version",), ) + def test_dotd_ge_16(self): + """Test environment with common ``*.d`` directories. + Only for versions greater or equal to 16""" + for sub_env in matrix(odoo_skip={"11.0", "12.0", "13.0", "14.0", "15.0"}): + self.compose_test( + join(SCAFFOLDINGS_DIR, "dotd_ge_16"), + sub_env, + # ``custom/build.d`` was properly executed + ("test", "-f", "/home/odoo/created-at-build"), + # ``custom/entrypoint.d`` was properly executed + ("test", "-f", "/home/odoo/created-at-entrypoint"), + # ``custom/conf.d`` was properly concatenated + ("grep", "test-conf", "auto/odoo.conf"), + # ``custom/dependencies`` were installed + ("test", "!", "-e", "/usr/sbin/sshd"), + ("test", "!", "-e", "/var/lib/apt/lists/lock"), + ("busybox", "whoami"), + ("bash", "-xc", "echo $NODE_PATH"), + ("node", "-e", "require('test-npm-install')"), + ("hello-world",), + ( + "bash", + "-c", + 'test "$(hello-world)" == "this is executable hello-world"', + ), + ("python", "-xc", "import Crypto; print(Crypto.__version__)"), + # ``requirements.txt`` from addon repos were processed + ("python", "-c", "import numpy"), + # Local executable binaries found in $PATH + ("sh", "-xc", "pip install --user -q flake8 && which flake8"), + # Addon cleanup works correctly + ("test", "!", "-e", "custom/src/private/dummy_addon"), + ("test", "!", "-e", "custom/src/dummy_repo/dummy_link"), + ("test", "-d", "custom/src/private/private_addon"), + ("test", "-f", "custom/src/private/private_addon/__init__.py"), + ("test", "-e", "auto/addons/private_addon"), + # ``odoo`` command works + ("odoo", "--version"), + # Implicit ``odoo`` command also works + ("--version",), + ) + def test_dependencies(self): """Test dependencies installation.""" dependencies_dir = join(SCAFFOLDINGS_DIR, "dependencies") - for sub_env in matrix(): + for sub_env in matrix(odoo_skip={"16.0", "17.0"}): + self.compose_test( + dependencies_dir, + sub_env, + ("test", "!", "-f", "custom/dependencies/apt.txt"), + ("test", "!", "-f", "custom/dependencies/gem.txt"), + ("test", "!", "-f", "custom/dependencies/npm.txt"), + ("test", "!", "-f", "custom/dependencies/pip.txt"), + # apt_build.txt + ("test", "-f", "custom/dependencies/apt_build.txt"), + ("test", "!", "-e", "/usr/sbin/sshd"), + # apt-without-sequence.txt + ("test", "-f", "custom/dependencies/apt-without-sequence.txt"), + ("test", "!", "-e", "/bin/busybox"), + # 070-apt-bc.txt + ("test", "-f", "custom/dependencies/070-apt-bc.txt"), + ("test", "-e", "/usr/bin/bc"), + # 150-npm-aloha_world-install.txt + ("test", "-f", "custom/dependencies/150-npm-aloha_world-install.txt"), + ("node", "-e", "require('test-npm-install')"), + # 200-pip-without-ext + ("test", "-f", "custom/dependencies/200-pip-without-ext"), + ("python", "-c", "import Crypto; print(Crypto.__version__)"), + # 270-gem.txt + ("test", "-f", "custom/dependencies/270-gem.txt"), + ("hello-world",), + ) + if float(sub_env["ODOO_MINOR"]) < 14: + self.compose_test( + dependencies_dir, + sub_env, + # For odoo versions < 14.0 we make sure we have a patched Werkzeug version + ( + "bash", + "-xc", + ( + 'test "$(python -c "import werkzeug; ' + 'print(werkzeug.__version__)")" == 0.14.1' + ), + ), + ) + + def test_dependencies_ge_16(self): + """Test dependencies installation for greater or equal v16 version.""" + dependencies_dir = join(SCAFFOLDINGS_DIR, "dependencies_ge_16") + for sub_env in matrix(odoo_skip={"11.0", "12.0", "13.0", "14.0", "15.0"}): self.compose_test( dependencies_dir, sub_env, diff --git a/tests/scaffoldings/dependencies_ge_16/Dockerfile b/tests/scaffoldings/dependencies_ge_16/Dockerfile new file mode 100644 index 00000000..4916c47a --- /dev/null +++ b/tests/scaffoldings/dependencies_ge_16/Dockerfile @@ -0,0 +1,2 @@ +ARG ODOO_VERSION +FROM tecnativa/doodba:${ODOO_VERSION}-onbuild diff --git a/tests/scaffoldings/dependencies_ge_16/custom/build.d/150-conditional-ruby b/tests/scaffoldings/dependencies_ge_16/custom/build.d/150-conditional-ruby new file mode 100755 index 00000000..e9959230 --- /dev/null +++ b/tests/scaffoldings/dependencies_ge_16/custom/build.d/150-conditional-ruby @@ -0,0 +1,14 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""Add ruby as a conditional dependency.""" + +import os + +from doodbalib import ODOO_VERSION + +if float(ODOO_VERSION) >= 13: + # These Doodba versions still can use the ruby gem autoinstaller, but + # need ruby to be manually installed because it is not in the base image + # by default (it was until Odoo 12.0) + with open("/opt/odoo/custom/dependencies/000-apt-ruby.txt", "w") as fd: + fd.writelines(["ruby"]) diff --git a/tests/scaffoldings/dependencies_ge_16/custom/dependencies/070-apt-bc.txt b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/070-apt-bc.txt new file mode 100644 index 00000000..4aef3ad0 --- /dev/null +++ b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/070-apt-bc.txt @@ -0,0 +1,2 @@ +# This line should be ignored +bc diff --git a/tests/scaffoldings/dependencies_ge_16/custom/dependencies/150-npm-aloha_world-install.txt b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/150-npm-aloha_world-install.txt new file mode 100644 index 00000000..d822001c --- /dev/null +++ b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/150-npm-aloha_world-install.txt @@ -0,0 +1,2 @@ +# This line should be ignored +test-npm-install diff --git a/tests/scaffoldings/dependencies_ge_16/custom/dependencies/200-pip-without-ext b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/200-pip-without-ext new file mode 100644 index 00000000..86ae918c --- /dev/null +++ b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/200-pip-without-ext @@ -0,0 +1,2 @@ +# Compiled locally, which would fail if `apt_build.txt` fails +pycrypto==2.6.1 --no-binary :all: diff --git a/tests/scaffoldings/dependencies_ge_16/custom/dependencies/270-gem.txt b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/270-gem.txt new file mode 100644 index 00000000..ce51ab87 --- /dev/null +++ b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/270-gem.txt @@ -0,0 +1,2 @@ +# This line should be ignored +hello-world diff --git a/tests/scaffoldings/dependencies_ge_16/custom/dependencies/apt-without-sequence.txt b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/apt-without-sequence.txt new file mode 100644 index 00000000..2100ebc6 --- /dev/null +++ b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/apt-without-sequence.txt @@ -0,0 +1,2 @@ +# This package WON'T be installed +busybox diff --git a/tests/scaffoldings/dependencies_ge_16/custom/dependencies/apt_build.txt b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/apt_build.txt new file mode 100644 index 00000000..2068bd87 --- /dev/null +++ b/tests/scaffoldings/dependencies_ge_16/custom/dependencies/apt_build.txt @@ -0,0 +1,6 @@ +# This installs gcc among other things +build-essential +# This is the basic need to build any python extensions in v11- +python3-dev +# Just to test it is removed later +openssh-server diff --git a/tests/scaffoldings/dependencies_ge_16/custom/src/addons.yaml b/tests/scaffoldings/dependencies_ge_16/custom/src/addons.yaml new file mode 100644 index 00000000..e69de29b diff --git a/tests/scaffoldings/dependencies_ge_16/docker-compose.yaml b/tests/scaffoldings/dependencies_ge_16/docker-compose.yaml new file mode 100644 index 00000000..5cb154cd --- /dev/null +++ b/tests/scaffoldings/dependencies_ge_16/docker-compose.yaml @@ -0,0 +1,29 @@ +version: "2.1" +services: + odoo: + build: + context: ./ + args: + COMPILE: "false" + ODOO_VERSION: $ODOO_MINOR + WITHOUT_DEMO: "false" + tty: true + depends_on: + - db + environment: + PYTHONOPTIMIZE: "" + UNACCENT: "false" + volumes: + - filestore:/var/lib/odoo:z + + db: + image: postgres:${DB_VERSION}-alpine + environment: + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoopassword + volumes: + - db:/var/lib/postgresql/data:z + +volumes: + db: + filestore: diff --git a/tests/scaffoldings/dotd_ge_16/Dockerfile b/tests/scaffoldings/dotd_ge_16/Dockerfile new file mode 100644 index 00000000..4916c47a --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/Dockerfile @@ -0,0 +1,2 @@ +ARG ODOO_VERSION +FROM tecnativa/doodba:${ODOO_VERSION}-onbuild diff --git a/tests/scaffoldings/dotd_ge_16/custom/build.d/10-touch-build b/tests/scaffoldings/dotd_ge_16/custom/build.d/10-touch-build new file mode 100755 index 00000000..953a11f0 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/build.d/10-touch-build @@ -0,0 +1,3 @@ +#!/bin/bash +set -ex +touch /home/odoo/created-at-build diff --git a/tests/scaffoldings/dotd_ge_16/custom/build.d/100-assert-touched b/tests/scaffoldings/dotd_ge_16/custom/build.d/100-assert-touched new file mode 100755 index 00000000..4f905cdd --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/build.d/100-assert-touched @@ -0,0 +1,3 @@ +#!/bin/bash +set -ex +test -f /home/odoo/created-at-build diff --git a/tests/scaffoldings/dotd_ge_16/custom/build.d/101-assert-aggregation b/tests/scaffoldings/dotd_ge_16/custom/build.d/101-assert-aggregation new file mode 100755 index 00000000..a8c07a2e --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/build.d/101-assert-aggregation @@ -0,0 +1,4 @@ +#!/bin/bash +# Git aggregation is performed at step 100 +set -ex +test -d /opt/odoo/custom/src/odoo diff --git a/tests/scaffoldings/dotd_ge_16/custom/build.d/15-broken-link b/tests/scaffoldings/dotd_ge_16/custom/build.d/15-broken-link new file mode 100755 index 00000000..684810f2 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/build.d/15-broken-link @@ -0,0 +1,3 @@ +#!/bin/bash +set -ex +ln -s brokenpath auto/addons/dummy_addon diff --git a/tests/scaffoldings/dotd_ge_16/custom/build.d/201-assert-dependencies b/tests/scaffoldings/dotd_ge_16/custom/build.d/201-assert-dependencies new file mode 100755 index 00000000..04d2692d --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/build.d/201-assert-dependencies @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# Dependencies are processed at step 200 +set -ex +which busybox +hello-world +node -e "require('test-npm-install')" +python -c "import numpy, Crypto" diff --git a/tests/scaffoldings/dotd_ge_16/custom/conf.d/test-conf b/tests/scaffoldings/dotd_ge_16/custom/conf.d/test-conf new file mode 100644 index 00000000..21c748da --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/conf.d/test-conf @@ -0,0 +1 @@ +[test-conf] diff --git a/tests/scaffoldings/dotd_ge_16/custom/dependencies/apt.txt b/tests/scaffoldings/dotd_ge_16/custom/dependencies/apt.txt new file mode 100644 index 00000000..5b76ceb3 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/dependencies/apt.txt @@ -0,0 +1,5 @@ +# This line should be ignored +busybox +ruby +ninja-build +patchelf diff --git a/tests/scaffoldings/dotd_ge_16/custom/dependencies/apt_build.txt b/tests/scaffoldings/dotd_ge_16/custom/dependencies/apt_build.txt new file mode 100644 index 00000000..b74d8115 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/dependencies/apt_build.txt @@ -0,0 +1,6 @@ +# This installs gcc among other things +build-essential +# This is the basic need to build any python extensions on v11- +python3-dev +# Just to test it is removed after building +openssh-server diff --git a/tests/scaffoldings/dotd_ge_16/custom/dependencies/gem.txt b/tests/scaffoldings/dotd_ge_16/custom/dependencies/gem.txt new file mode 100644 index 00000000..ce51ab87 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/dependencies/gem.txt @@ -0,0 +1,2 @@ +# This line should be ignored +hello-world diff --git a/tests/scaffoldings/dotd_ge_16/custom/dependencies/npm.txt b/tests/scaffoldings/dotd_ge_16/custom/dependencies/npm.txt new file mode 100644 index 00000000..d822001c --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/dependencies/npm.txt @@ -0,0 +1,2 @@ +# This line should be ignored +test-npm-install diff --git a/tests/scaffoldings/dotd_ge_16/custom/dependencies/pip.txt b/tests/scaffoldings/dotd_ge_16/custom/dependencies/pip.txt new file mode 100644 index 00000000..e9d91282 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/dependencies/pip.txt @@ -0,0 +1,4 @@ +# Compiled locally, which would fail if `apt_build.txt` fails +pycrypto==2.6.1 --no-binary :all: +# External dependency files can be included too; example: numpy +-r https://raw.githubusercontent.com/Tecnativa/doodba/6cec8ea6eefa9d8de8cff103cfca6e373f8fe910/tests/scaffoldings/dotd/custom/src/dummy_repo/requirements.txt diff --git a/tests/scaffoldings/dotd_ge_16/custom/entrypoint.d/check-requirements b/tests/scaffoldings/dotd_ge_16/custom/entrypoint.d/check-requirements new file mode 100755 index 00000000..a2aedbeb --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/entrypoint.d/check-requirements @@ -0,0 +1,3 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import numpy diff --git a/tests/scaffoldings/dotd_ge_16/custom/entrypoint.d/pip-install-user b/tests/scaffoldings/dotd_ge_16/custom/entrypoint.d/pip-install-user new file mode 100755 index 00000000..b82411e1 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/entrypoint.d/pip-install-user @@ -0,0 +1,8 @@ +#!/bin/bash +set -ex + +# Check that --user installations work +pip install --user pg_activity + +# Binary must be in $PATH +pg_activity --version diff --git a/tests/scaffoldings/dotd_ge_16/custom/entrypoint.d/touch-entrypoint b/tests/scaffoldings/dotd_ge_16/custom/entrypoint.d/touch-entrypoint new file mode 100755 index 00000000..3ce7311b --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/entrypoint.d/touch-entrypoint @@ -0,0 +1,3 @@ +#!/bin/bash +set -ex +touch /home/odoo/created-at-entrypoint diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/addons.yaml b/tests/scaffoldings/dotd_ge_16/custom/src/addons.yaml new file mode 100644 index 00000000..10da6de1 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/src/addons.yaml @@ -0,0 +1,20 @@ +other-doodba/odoo/src/private: + - absent_addon + - dummy_addon + - product +enterprise: + - make_odoo_rich +--- +ONLY: + PGDATABASE: + - limited_core +odoo/addons: + - crm + - sale + +--- +ONLY: + PGDATABASE: + - limited_private + - limited_core +private: [] diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/dummy_repo/dummy_link b/tests/scaffoldings/dotd_ge_16/custom/src/dummy_repo/dummy_link new file mode 120000 index 00000000..abb95d99 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/src/dummy_repo/dummy_link @@ -0,0 +1 @@ +dummy_addon \ No newline at end of file diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/dummy_repo/requirements.txt b/tests/scaffoldings/dotd_ge_16/custom/src/dummy_repo/requirements.txt new file mode 100644 index 00000000..24ce15ab --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/src/dummy_repo/requirements.txt @@ -0,0 +1 @@ +numpy diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/enterprise/make_odoo_rich/__openerp__.py b/tests/scaffoldings/dotd_ge_16/custom/src/enterprise/make_odoo_rich/__openerp__.py new file mode 100644 index 00000000..cc1ba263 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/src/enterprise/make_odoo_rich/__openerp__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +{"name": "make_odoo_rich", "depends": ["iap"]} diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/dummy_addon/__init__.py b/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/dummy_addon/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/dummy_addon/__manifest__.py b/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/dummy_addon/__manifest__.py new file mode 100644 index 00000000..7a4cc997 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/dummy_addon/__manifest__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +{"name": "dummy_addon", "depends": ["web"], "installable": True} diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/product/__init__.py b/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/product/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/product/__manifest__.py b/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/product/__manifest__.py new file mode 100644 index 00000000..4e285873 --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/product/__manifest__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +{"name": "other-doodba/product"} diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/some_random_evil_file.txt b/tests/scaffoldings/dotd_ge_16/custom/src/other-doodba/odoo/src/private/some_random_evil_file.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/private/.empty b/tests/scaffoldings/dotd_ge_16/custom/src/private/.empty new file mode 100644 index 00000000..e69de29b diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/private/disabled_addon/__init__.py b/tests/scaffoldings/dotd_ge_16/custom/src/private/disabled_addon/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/private/disabled_addon/__openerp__.py b/tests/scaffoldings/dotd_ge_16/custom/src/private/disabled_addon/__openerp__.py new file mode 100644 index 00000000..32114e6b --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/src/private/disabled_addon/__openerp__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +{"name": "disabled_addon", "installable": False} diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/private/private_addon/__init__.py b/tests/scaffoldings/dotd_ge_16/custom/src/private/private_addon/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/private/private_addon/__openerp__.py b/tests/scaffoldings/dotd_ge_16/custom/src/private/private_addon/__openerp__.py new file mode 100644 index 00000000..a9c52e7d --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/custom/src/private/private_addon/__openerp__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +{"name": "private_addon", "depends": ["dummy_addon", "website"]} diff --git a/tests/scaffoldings/dotd_ge_16/custom/src/private/some_random_evil_file.txt b/tests/scaffoldings/dotd_ge_16/custom/src/private/some_random_evil_file.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/scaffoldings/dotd_ge_16/docker-compose.yaml b/tests/scaffoldings/dotd_ge_16/docker-compose.yaml new file mode 100644 index 00000000..fbbaec8d --- /dev/null +++ b/tests/scaffoldings/dotd_ge_16/docker-compose.yaml @@ -0,0 +1,30 @@ +version: "2.1" +services: + odoo: + build: + context: ./ + args: + LOG_LEVEL: DEBUG + ODOO_VERSION: $ODOO_MINOR + tty: true + environment: + PGUSER: another_odoo + PGPASSWORD: anotherodoopassword + PGHOST: postgresql + PGDATABASE: ${DBNAME:-prod} + depends_on: + - postgresql + volumes: + - filestore:/var/lib/odoo:z + + postgresql: + image: tecnativa/postgres-autoconf:${DB_VERSION}-alpine + environment: + POSTGRES_USER: another_odoo + POSTGRES_PASSWORD: anotherodoopassword + volumes: + - db:/var/lib/postgresql/data:z + +volumes: + db: + filestore: