diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 000000000..28a0808b3 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,291 @@ +{ + "globals": { + "$": false, + "_": false, + "fuzzy": false, + "jQuery": false, + "moment": false, + "odoo": false, + "openerp": false, + "self": false + }, + "env": { + "browser": true + }, + "rules": { + "no-alert": "warn", + "no-array-constructor": "warn", + "no-bitwise": "off", + "no-caller": "warn", + "no-case-declarations": "warn", + "no-catch-shadow": "warn", + "no-class-assign": "warn", + "no-cond-assign": "warn", + "no-confusing-arrow": "warn", + "no-console": "off", + "no-const-assign": "warn", + "no-constant-condition": "warn", + "no-continue": "off", + "no-control-regex": "warn", + "no-debugger": "warn", + "no-delete-var": "warn", + "no-div-regex": "warn", + "no-dupe-args": "warn", + "no-dupe-class-members": "warn", + "no-dupe-keys": "warn", + "no-duplicate-case": "warn", + "no-duplicate-imports": "warn", + "no-else-return": "warn", + "no-empty": "warn", + "no-empty-character-class": "warn", + "no-empty-function": "warn", + "no-empty-pattern": "warn", + "no-eq-null": "warn", + "no-eval": "warn", + "no-ex-assign": "warn", + "no-extend-native": "warn", + "no-extra-bind": "warn", + "no-extra-boolean-cast": "warn", + "no-extra-label": "warn", + "no-extra-parens": "warn", + "no-extra-semi": "warn", + "no-fallthrough": "warn", + "no-floating-decimal": "warn", + "no-func-assign": "warn", + "no-implicit-coercion": ["warn", { + "allow": ["~"] + }], + "no-implicit-globals": "warn", + "no-implied-eval": "warn", + "no-inline-comments": "warn", + "no-inner-declarations": "warn", + "no-invalid-regexp": "warn", + "no-invalid-this": "off", + "no-irregular-whitespace": "warn", + "no-iterator": "warn", + "no-label-var": "warn", + "no-labels": "warn", + "no-lone-blocks": "warn", + "no-lonely-if": "warn", + "no-loop-func": "off", + "no-magic-numbers": "off", + "no-mixed-operators": "warn", + "no-mixed-requires": "warn", + "no-mixed-spaces-and-tabs": "warn", + "no-multi-spaces": "warn", + "no-multi-str": "warn", + "no-multiple-empty-lines": "warn", + "no-native-reassign": "warn", + "no-negated-condition": "warn", + "no-negated-in-lhs": "warn", + "no-nested-ternary": "off", + "no-new": "warn", + "no-new-func": "warn", + "no-new-object": "warn", + "no-new-require": "warn", + "no-new-symbol": "warn", + "no-new-wrappers": "warn", + "no-obj-calls": "warn", + "no-octal": "warn", + "no-octal-escape": "warn", + "no-param-reassign": "warn", + "no-path-concat": "warn", + "no-plusplus": "off", + "no-process-env": "warn", + "no-process-exit": "warn", + "no-proto": "warn", + "no-prototype-builtins": "warn", + "no-redeclare": "warn", + "no-regex-spaces": "warn", + "no-restricted-globals": "warn", + "no-restricted-imports": "warn", + "no-restricted-modules": "warn", + "no-restricted-syntax": "warn", + "no-return-assign": "warn", + "no-script-url": "warn", + "no-self-assign": "warn", + "no-self-compare": "warn", + "no-sequences": "warn", + "no-shadow": "warn", + "no-shadow-restricted-names": "warn", + "no-whitespace-before-property": "warn", + "no-spaced-func": "warn", + "no-sparse-arrays": "warn", + "no-sync": "warn", + "no-tabs": "warn", + "no-ternary": "off", + "no-trailing-spaces": "warn", + "no-this-before-super": "warn", + "no-throw-literal": "warn", + "no-undef": "warn", + "no-undef-init": "warn", + "no-undefined": "off", + "no-unexpected-multiline": "warn", + "no-underscore-dangle": "off", + "no-unmodified-loop-condition": "warn", + "no-unneeded-ternary": "warn", + "no-unreachable": "warn", + "no-unsafe-finally": "warn", + "no-unused-expressions": "warn", + "no-unused-labels": "warn", + "no-unused-vars": "warn", + "no-use-before-define": "warn", + "no-useless-call": "warn", + "no-useless-computed-key": "warn", + "no-useless-concat": "warn", + "no-useless-constructor": "warn", + "no-useless-escape": "warn", + "no-useless-rename": "warn", + "no-void": "warn", + "no-var": "off", + "no-warning-comments": "off", + "no-with": "warn", + "array-bracket-spacing": "off", + "array-callback-return": "warn", + "arrow-body-style": "warn", + "arrow-parens": "warn", + "arrow-spacing": "off", + "accessor-pairs": "warn", + "block-scoped-var": "off", + "block-spacing": ["warn", "always"], + "brace-style": "warn", + "callback-return": "warn", + "camelcase": "off", + "capitalized-comments": ["warn", "always", { + "ignoreConsecutiveComments": true, + "ignoreInlineComments": true + }], + "comma-dangle": ["warn", "always-multiline"], + "comma-spacing": ["warn", { + "before": false, + "after": true + }], + "comma-style": "warn", + "complexity": [ + "warn", + 15 + ], + "computed-property-spacing": "off", + "consistent-return": "off", + "consistent-this": "off", + "constructor-super": "warn", + "curly": "warn", + "default-case": "off", + "dot-location": ["warn", "property"], + "dot-notation": "warn", + "eol-last": "warn", + "eqeqeq": "warn", + "func-names": "off", + "func-style": "off", + "generator-star-spacing": "off", + "global-require": "warn", + "guard-for-in": "off", + "handle-callback-err": "warn", + "id-blacklist": "warn", + "id-length": "off", + "id-match": "warn", + "indent": "warn", + "init-declarations": "warn", + "jsx-quotes": "warn", + "key-spacing": "off", + "keyword-spacing": "warn", + "linebreak-style": [ + "warn", + "unix" + ], + "lines-around-comment": "warn", + "max-depth": "warn", + "max-len": ["warn", { + "code": 88, + "ignorePattern": "odoo\\.define\\(", + "tabWidth": 4 + }], + "max-lines": "off", + "max-nested-callbacks": "warn", + "max-params": "off", + "max-statements": "off", + "max-statements-per-line": "warn", + "multiline-ternary": "off", + "new-cap": "off", + "new-parens": "warn", + "newline-after-var": "off", + "newline-before-return": "off", + "newline-per-chained-call": "off", + "object-curly-newline": ["warn", { "consistent": true }], + "object-curly-spacing": ["warn", "never"], + "object-property-newline": ["warn", { + "allowAllPropertiesOnSameLine": true + }], + "object-shorthand": "off", + "one-var": "off", + "one-var-declaration-per-line": "off", + "operator-assignment": "warn", + "operator-linebreak": "warn", + "padded-blocks": "off", + "prefer-arrow-callback": "off", + "prefer-const": "warn", + "prefer-reflect": "off", + "prefer-rest-params": "off", + "prefer-spread": "off", + "prefer-template": "off", + "quote-props": "off", + "quotes": "off", + "radix": "warn", + "require-yield": "warn", + "rest-spread-spacing": "off", + "semi": [ + "warn", + "always" + ], + "semi-spacing": "warn", + "sort-imports": "warn", + "sort-vars": "off", + "space-before-blocks": "warn", + "space-before-function-paren": "warn", + "space-in-parens": "off", + "space-infix-ops": "off", + "space-unary-ops": "off", + "spaced-comment": ["warn", "always"], + "strict": ["warn", "function"], + "template-curly-spacing": "off", + "unicode-bom": "warn", + "use-isnan": "warn", + "valid-jsdoc": ["warn", { + "prefer": { + "arg": "param", + "argument": "param", + "augments": "extends", + "constructor": "class", + "exception": "throws", + "func": "function", + "method": "function", + "prop": "property", + "return": "returns", + "virtual": "abstract", + "yield": "yields" + }, + "preferType": { + "array": "Array", + "bool": "Boolean", + "boolean": "Boolean", + "number": "Number", + "object": "Object", + "str": "String", + "string": "String" + }, + "requireParamDescription": false, + "requireReturn": false, + "requireReturnDescription": false, + "requireReturnType": false + }], + "valid-typeof": "warn", + "vars-on-top": "off", + "wrap-iife": "warn", + "wrap-regex": "warn", + "yield-star-spacing": "off", + "yoda": "warn" + }, + "parserOptions": { + "ecmaVersion": 2017 + } +} diff --git a/.flake8 b/.flake8 new file mode 100644 index 000000000..44ed868f7 --- /dev/null +++ b/.flake8 @@ -0,0 +1,10 @@ +[flake8] +max-line-length = 80 +max-complexity = 16 +# B = bugbear +# B9 = bugbear opinionated (incl line length) +select = C,E,F,W,B,B9 +# E203: whitespace before ':' (black behaviour) +# E501: flake8 line length (covered by bugbear B950) +# W503: line break before binary operator (black behaviour) +ignore = E203,E501,W503 diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 000000000..98b216f74 --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,12 @@ +[settings] +; see https://github.com/psf/black +multi_line_output=3 +include_trailing_comma=True +force_grid_wrap=0 +combine_as_imports=True +use_parentheses=True +line_length=88 +known_odoo=odoo +known_odoo_addons=odoo.addons +sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER +known_third_party=setuptools diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..876d1e98e --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,68 @@ +exclude: "^setup/|/static/lib/|/static/src/lib/" +default_language_version: + python: python3 +repos: +- repo: https://github.com/psf/black + rev: 19.3b0 + hooks: + - id: black +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.3.0 + hooks: + - id: trailing-whitespace + # exclude autogenerated files + exclude: /README\.rst$|\.pot?$ + - id: end-of-file-fixer + # exclude autogenerated files + exclude: /README\.rst$|\.pot?$ + - id: debug-statements + - id: flake8 + name: flake8 except __init__.py + exclude: /__init__\.py$ + additional_dependencies: ["flake8-bugbear==19.8.0"] + - id: flake8 + name: flake8 only __init__.py + args: ["--extend-ignore=F401"] # ignore unused imports in __init__.py + files: /__init__\.py$ + additional_dependencies: ["flake8-bugbear==19.8.0"] + - id: fix-encoding-pragma + args: ["--remove"] + - id: check-case-conflict + - id: check-docstring-first + - id: check-executables-have-shebangs + - id: check-merge-conflict + - id: check-symlinks + - id: check-xml + - id: mixed-line-ending + args: ["--fix=lf"] +- repo: https://github.com/pre-commit/mirrors-pylint + rev: v2.3.1 + hooks: + - id: pylint + name: pylint with optional checks + args: ["--rcfile=.pylintrc", "--exit-zero"] + verbose: true + additional_dependencies: ["pylint-odoo==3.0.3"] + - id: pylint + name: pylint with mandatory checks + args: ["--rcfile=.pylintrc-mandatory"] + additional_dependencies: ["pylint-odoo==3.0.3"] +- repo: https://github.com/asottile/pyupgrade + rev: v1.24.0 + hooks: + - id: pyupgrade +- repo: https://github.com/asottile/seed-isort-config + rev: v1.9.3 + hooks: + - id: seed-isort-config +- repo: https://github.com/pre-commit/mirrors-isort + rev: v4.3.21 + hooks: + - id: isort + name: isort except __init__.py + exclude: /__init__\.py$ +- repo: https://github.com/pre-commit/mirrors-eslint + rev: v6.5.1 + hooks: + - id: eslint + verbose: true diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 000000000..f9ddbaa3f --- /dev/null +++ b/.pylintrc @@ -0,0 +1,87 @@ +[MASTER] +load-plugins=pylint_odoo +score=n + +[ODOOLINT] +readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" +manifest_required_authors=Odoo Community Association (OCA) +manifest_required_keys=license +manifest_deprecated_keys=description,active +license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 +valid_odoo_versions=13.0 + +[MESSAGES CONTROL] +disable=all + +# This .pylintrc contains optional AND mandatory checks and is meant to be +# loaded in an IDE to have it check everything, in the hope this will make +# optional checks more visible to contributors who otherwise never look at a +# green travis to see optional checks that failed. +# .pylintrc-mandatory containing only mandatory checks is used the pre-commit +# config as a blocking check. + +enable=anomalous-backslash-in-string, + api-one-deprecated, + api-one-multi-together, + assignment-from-none, + attribute-deprecated, + class-camelcase, + dangerous-default-value, + dangerous-view-replace-wo-priority, + duplicate-id-csv, + duplicate-key, + duplicate-xml-fields, + duplicate-xml-record-id, + eval-referenced, + eval-used, + incoherent-interpreter-exec-perm, + license-allowed, + manifest-author-string, + manifest-deprecated-key, + manifest-required-author, + manifest-required-key, + manifest-version-format, + method-compute, + method-inverse, + method-required-super, + method-search, + missing-import-error, + missing-manifest-dependency, + openerp-exception-warning, + pointless-statement, + pointless-string-statement, + print-used, + redundant-keyword-arg, + redundant-modulename-xml, + reimported, + relative-import, + return-in-init, + rst-syntax-error, + sql-injection, + too-few-format-args, + translation-field, + translation-required, + unreachable, + use-vim-comment, + wrong-tabs-instead-of-spaces, + xml-syntax-error, + # messages that do not cause the lint step to fail + consider-merging-classes-inherited, + create-user-wo-reset-password, + dangerous-filter-wo-user, + deprecated-module, + file-not-used, + invalid-commit, + missing-newline-extrafiles, + missing-readme, + no-utf8-coding-comment, + odoo-addons-relative-import, + old-api7-method-defined, + redefined-builtin, + too-complex, + unnecessary-utf8-coding-comment + +[REPORTS] +msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} +output-format=colorized +reports=no diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory new file mode 100644 index 000000000..7635cbb17 --- /dev/null +++ b/.pylintrc-mandatory @@ -0,0 +1,65 @@ +[MASTER] +load-plugins=pylint_odoo +score=n + +[ODOOLINT] +readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" +manifest_required_authors=Odoo Community Association (OCA) +manifest_required_keys=license +manifest_deprecated_keys=description,active +license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 +valid_odoo_versions=13.0 + +[MESSAGES CONTROL] +disable=all + +enable=anomalous-backslash-in-string, + api-one-deprecated, + api-one-multi-together, + assignment-from-none, + attribute-deprecated, + class-camelcase, + dangerous-default-value, + dangerous-view-replace-wo-priority, + duplicate-id-csv, + duplicate-key, + duplicate-xml-fields, + duplicate-xml-record-id, + eval-referenced, + eval-used, + incoherent-interpreter-exec-perm, + license-allowed, + manifest-author-string, + manifest-deprecated-key, + manifest-required-author, + manifest-required-key, + manifest-version-format, + method-compute, + method-inverse, + method-required-super, + method-search, + missing-import-error, + missing-manifest-dependency, + openerp-exception-warning, + pointless-statement, + pointless-string-statement, + print-used, + redundant-keyword-arg, + redundant-modulename-xml, + reimported, + relative-import, + return-in-init, + rst-syntax-error, + sql-injection, + too-few-format-args, + translation-field, + translation-required, + unreachable, + use-vim-comment, + wrong-tabs-instead-of-spaces, + xml-syntax-error + +[REPORTS] +msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} +output-format=colorized +reports=no diff --git a/.travis.yml b/.travis.yml index 3038739ec..7048b77b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,30 +1,42 @@ language: python +cache: + directories: + - $HOME/.cache/pip + - $HOME/.cache/pre-commit python: - - "3.5" - -sudo: false -cache: pip + - "3.6" addons: postgresql: "9.6" apt: packages: - expect-dev # provides unbuffer utility - - python-lxml # because pip installation is slow + +stages: + - linting + - test + +jobs: + include: + - stage: linting + name: "pre-commit" + before_install: + install: pip install pre-commit + script: pre-commit run --all --show-diff-on-failure + after_success: + - stage: test + env: + - TESTS="1" ODOO_REPO="odoo/odoo" MAKEPOT="1" + - stage: test + env: + - TESTS="1" ODOO_REPO="OCA/OCB" env: global: - - VERSION="13.0" TESTS="0" LINT_CHECK="0" TRANSIFEX="0" - - matrix: - - LINT_CHECK="1" - - TESTS="1" ODOO_REPO="OCA/OCB" - - TESTS="1" ODOO_REPO="odoo/odoo" MAKEPOT="1" - + - VERSION="13.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0" install: - - pip install anybox.testing.openerp - git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} - travis_install_nightly diff --git a/README.md b/README.md index 6ba88612a..c8326eb03 100644 --- a/README.md +++ b/README.md @@ -11,5 +11,3 @@ This project aims to deal with modules related to the webclient of Odoo. You'll - Add widgets - Ease the import/export features - Generally add clientside functionality - - diff --git a/web_dialog_size/__manifest__.py b/web_dialog_size/__manifest__.py index b1ed4884d..4e30520cc 100644 --- a/web_dialog_size/__manifest__.py +++ b/web_dialog_size/__manifest__.py @@ -3,28 +3,22 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': "Web Dialog Size", - 'summary': """ + "name": "Web Dialog Size", + "summary": """ A module that lets the user expand a dialog box to the full screen width.""", - 'author': "ACSONE SA/NV, " - "Therp BV, " - "Siddharth Bhalgami," - "Tecnativa, " - "Amaris, " - "Odoo Community Association (OCA)", - 'website': "http://github.com/OCA/web", - 'category': 'web', - 'version': '13.0.1.0.0', - 'license': 'AGPL-3', - 'depends': [ - 'web', - ], - 'qweb': [ - 'static/src/xml/web_dialog_size.xml', - ], - 'data': [ - 'templates/assets.xml', - ], - 'installable': True, + "author": "ACSONE SA/NV, " + "Therp BV, " + "Siddharth Bhalgami," + "Tecnativa, " + "Amaris, " + "Odoo Community Association (OCA)", + "website": "http://github.com/OCA/web", + "category": "web", + "version": "13.0.1.0.0", + "license": "AGPL-3", + "depends": ["web"], + "qweb": ["static/src/xml/web_dialog_size.xml"], + "data": ["templates/assets.xml"], + "installable": True, } diff --git a/web_dialog_size/models/ir_config_parameter.py b/web_dialog_size/models/ir_config_parameter.py index 4de06e322..493a4f6fb 100644 --- a/web_dialog_size/models/ir_config_parameter.py +++ b/web_dialog_size/models/ir_config_parameter.py @@ -1,7 +1,7 @@ # Copyright 2018 Tecnativa - Jairo Llopis # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo.models import api, Model +from odoo.models import Model, api from odoo.tools.safe_eval import const_eval @@ -13,5 +13,6 @@ class IrConfigParameter(Model): get_param = self.sudo().get_param return { "default_maximize": const_eval( - get_param("web_dialog_size.default_maximize", "False")) + get_param("web_dialog_size.default_maximize", "False") + ) } diff --git a/web_dialog_size/tests/test_web_dialog_size.py b/web_dialog_size/tests/test_web_dialog_size.py index 6d6014d0d..53e916dd8 100644 --- a/web_dialog_size/tests/test_web_dialog_size.py +++ b/web_dialog_size/tests/test_web_dialog_size.py @@ -9,12 +9,12 @@ class TestWebDialogSize(TransactionCase): super(TestWebDialogSize, self).setUp() def test_get_web_dialog_size_config(self): - obj = self.env['ir.config_parameter'] + obj = self.env["ir.config_parameter"] - self.assertFalse(obj.get_web_dialog_size_config()['default_maximize']) + self.assertFalse(obj.get_web_dialog_size_config()["default_maximize"]) obj.set_param("web_dialog_size.default_maximize", "True") - self.assertTrue(obj.get_web_dialog_size_config()['default_maximize']) + self.assertTrue(obj.get_web_dialog_size_config()["default_maximize"]) obj.set_param("web_dialog_size.default_maximize", "False") - self.assertFalse(obj.get_web_dialog_size_config()['default_maximize']) + self.assertFalse(obj.get_web_dialog_size_config()["default_maximize"]) diff --git a/web_environment_ribbon/__manifest__.py b/web_environment_ribbon/__manifest__.py index 715db9ac1..9ef75cf62 100644 --- a/web_environment_ribbon/__manifest__.py +++ b/web_environment_ribbon/__manifest__.py @@ -5,21 +5,16 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': "Web Environment Ribbon", - 'version': '13.0.1.0.0', - 'category': 'Web', - 'author': 'Francesco OpenCode Apruzzese, ' - 'Tecnativa, ' - 'Odoo Community Association (OCA)', - 'website': 'https://github.com/OCA/web', - 'license': 'AGPL-3', - "depends": [ - 'web', - ], - "data": [ - 'data/ribbon_data.xml', - 'view/base_view.xml', - ], + "name": "Web Environment Ribbon", + "version": "13.0.1.0.0", + "category": "Web", + "author": "Francesco OpenCode Apruzzese, " + "Tecnativa, " + "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/web", + "license": "AGPL-3", + "depends": ["web"], + "data": ["data/ribbon_data.xml", "view/base_view.xml"], "auto_install": False, - 'installable': True + "installable": True, } diff --git a/web_environment_ribbon/models/web_environment_ribbon_backend.py b/web_environment_ribbon/models/web_environment_ribbon_backend.py index 1be0df716..5932d7b32 100644 --- a/web_environment_ribbon/models/web_environment_ribbon_backend.py +++ b/web_environment_ribbon/models/web_environment_ribbon_backend.py @@ -6,19 +6,16 @@ from odoo import api, models class WebEnvironmentRibbonBackend(models.AbstractModel): - _name = 'web.environment.ribbon.backend' - _description = 'Web Environment Ribbon Backend' + _name = "web.environment.ribbon.backend" + _description = "Web Environment Ribbon Backend" @api.model def _prepare_ribbon_format_vals(self): - return { - 'db_name': self.env.cr.dbname, - } + return {"db_name": self.env.cr.dbname} @api.model def _prepare_ribbon_name(self): - name_tmpl = self.env['ir.config_parameter'].sudo().get_param( - 'ribbon.name') + name_tmpl = self.env["ir.config_parameter"].sudo().get_param("ribbon.name") vals = self._prepare_ribbon_format_vals() return name_tmpl and name_tmpl.format(**vals) or name_tmpl @@ -28,11 +25,12 @@ class WebEnvironmentRibbonBackend(models.AbstractModel): This method returns the ribbon data from ir config parameters :return: dictionary """ - ir_config_model = self.env['ir.config_parameter'] + ir_config_model = self.env["ir.config_parameter"] name = self._prepare_ribbon_name() return { - 'name': name, - 'color': ir_config_model.sudo().get_param('ribbon.color'), - 'background_color': ir_config_model.sudo().get_param( - 'ribbon.background.color'), + "name": name, + "color": ir_config_model.sudo().get_param("ribbon.color"), + "background_color": ir_config_model.sudo().get_param( + "ribbon.background.color" + ), } diff --git a/web_environment_ribbon/tests/test_environment_ribbon_data.py b/web_environment_ribbon/tests/test_environment_ribbon_data.py index d155e9f44..f2a4378fd 100644 --- a/web_environment_ribbon/tests/test_environment_ribbon_data.py +++ b/web_environment_ribbon/tests/test_environment_ribbon_data.py @@ -8,22 +8,19 @@ class TestEnvironmentRibbonData(common.SavepointCase): @classmethod def setUpClass(cls): super(TestEnvironmentRibbonData, cls).setUpClass() - cls.env['ir.config_parameter'].set_param( - 'ribbon.name', 'Test Ribbon {db_name}') - cls.env['ir.config_parameter'].set_param('ribbon.color', '#000000') - cls.env['ir.config_parameter'].set_param( - 'ribbon.background.color', '#FFFFFF') + cls.env["ir.config_parameter"].set_param("ribbon.name", "Test Ribbon {db_name}") + cls.env["ir.config_parameter"].set_param("ribbon.color", "#000000") + cls.env["ir.config_parameter"].set_param("ribbon.background.color", "#FFFFFF") def test_environment_ribbon(self): """This test confirms that the data that is fetched by the javascript code is the right title and colors.""" - ribbon = self.env['web.environment.ribbon.backend'].\ - get_environment_ribbon() + ribbon = self.env["web.environment.ribbon.backend"].get_environment_ribbon() expected_ribbon = { - 'name': 'Test Ribbon {db_name}'.format(db_name=self.env.cr.dbname), - 'color': '#000000', - 'background_color': '#FFFFFF' + "name": "Test Ribbon {db_name}".format(db_name=self.env.cr.dbname), + "color": "#000000", + "background_color": "#FFFFFF", } self.assertDictEqual(ribbon, expected_ribbon)