From 07bbe4e8dc8b5b50497dc8e1c7e912a3db5f321d Mon Sep 17 00:00:00 2001 From: Samuel Degueldre Date: Fri, 11 Feb 2022 08:31:21 +0000 Subject: [PATCH] [IMP] test_lint, *: activate no-duplicate-imports eslint rule *: base_automation, hr, mail, web, web_tour, website_payment Previously, some modules were imported twice, this increases duplication and can make refactoring more difficult. This commit enables the no-duplicate-imports eslint rule and fixes offending modules to remove duplicates. closes odoo/odoo#84530 Related: odoo/enterprise#24319 Signed-off-by: Aaron Bohy (aab) --- .../tests/base_automation_error_dialog.js | 4 +--- .../hr/static/src/js/m2x_avatar_employee.js | 10 +++++++--- addons/mail/static/src/main.js | 3 +-- addons/mail/static/tests/activity_tests.js | 3 +-- .../web/static/src/core/network/download.js | 19 ++++++++++--------- .../src/legacy/js/public/public_root.js | 5 ++--- .../src/search/favorite_menu/favorite_menu.js | 3 +-- .../static/tests/search/search_model_tests.js | 3 +-- addons/web/static/tests/setup.js | 3 +-- .../static/tests/debug_manager_tests.js | 3 +-- .../static/src/js/website_payment_form.js | 3 +-- odoo/addons/test_lint/tests/eslintrc | 1 + 12 files changed, 28 insertions(+), 32 deletions(-) diff --git a/addons/base_automation/static/tests/base_automation_error_dialog.js b/addons/base_automation/static/tests/base_automation_error_dialog.js index 748a77d8297..be88ab2071d 100644 --- a/addons/base_automation/static/tests/base_automation_error_dialog.js +++ b/addons/base_automation/static/tests/base_automation_error_dialog.js @@ -13,10 +13,8 @@ import { makeFakeRPCService, makeFakeLocalizationService } from "@web/../tests/h import { RPCError } from "@web/core/network/rpc_service"; import { BaseAutomationErrorDialog } from "../src/js/base_automation_error_dialog"; -import { patchWithCleanup } from "@web/../tests/helpers/utils"; +import { patchWithCleanup,getFixture, mount, nextTick } from "@web/../tests/helpers/utils"; import { DialogContainer } from "@web/core/dialog/dialog_container"; -import { getFixture, mount } from "@web/../tests/helpers/utils"; -import { nextTick } from "@web/../tests/helpers/utils"; const { onMounted } = owl; diff --git a/addons/hr/static/src/js/m2x_avatar_employee.js b/addons/hr/static/src/js/m2x_avatar_employee.js index 3530b6de164..3c33366739c 100644 --- a/addons/hr/static/src/js/m2x_avatar_employee.js +++ b/addons/hr/static/src/js/m2x_avatar_employee.js @@ -2,9 +2,13 @@ import fieldRegistry from 'web.field_registry'; -import { Many2OneAvatarUser, KanbanMany2OneAvatarUser, KanbanMany2ManyAvatarUser, ListMany2ManyAvatarUser } from '@mail/js/m2x_avatar_user'; -import { Many2ManyAvatarUser } from '@mail/js/m2x_avatar_user'; -import { KanbanMany2ManyTagsAvatar, ListMany2ManyTagsAvatar } from 'web.relational_fields'; +import { + Many2OneAvatarUser, + KanbanMany2OneAvatarUser, + KanbanMany2ManyAvatarUser, + ListMany2ManyAvatarUser, + Many2ManyAvatarUser, +} from '@mail/js/m2x_avatar_user'; // This module defines variants of the Many2OneAvatarUser and Many2ManyAvatarUser diff --git a/addons/mail/static/src/main.js b/addons/mail/static/src/main.js index 491b8c7adcc..a40e45549c3 100644 --- a/addons/mail/static/src/main.js +++ b/addons/mail/static/src/main.js @@ -6,8 +6,7 @@ import { MessagingService } from '@mail/services/messaging/messaging'; import { SystrayService } from '@mail/services/systray_service/systray_service'; import { DiscussWidget } from '@mail/widgets/discuss/discuss'; -import { action_registry } from 'web.core'; -import { serviceRegistry } from 'web.core'; +import { serviceRegistry, action_registry } from 'web.core'; serviceRegistry.add('chat_window', ChatWindowService); serviceRegistry.add('dialog', DialogService); diff --git a/addons/mail/static/tests/activity_tests.js b/addons/mail/static/tests/activity_tests.js index 82517112598..d57062e7a9d 100644 --- a/addons/mail/static/tests/activity_tests.js +++ b/addons/mail/static/tests/activity_tests.js @@ -5,10 +5,9 @@ import ActivityView from '@mail/js/views/activity/activity_view'; import testUtils from 'web.test_utils'; import domUtils from 'web.dom'; -import { getFixture, legacyExtraNextTick, patchWithCleanup } from "@web/../tests/helpers/utils"; +import { getFixture, legacyExtraNextTick, patchWithCleanup, click } from "@web/../tests/helpers/utils"; import { createWebClient, doAction } from "@web/../tests/webclient/helpers"; import { session } from '@web/session'; -import { click } from "@web/../tests/helpers/utils"; let serverData; let target; diff --git a/addons/web/static/src/core/network/download.js b/addons/web/static/src/core/network/download.js index e6d828cccb9..c5de78807d1 100644 --- a/addons/web/static/src/core/network/download.js +++ b/addons/web/static/src/core/network/download.js @@ -1,8 +1,7 @@ /** @odoo-module **/ import { _lt } from "../l10n/translation"; -import { makeErrorFromResponse } from "@web/core/network/rpc_service"; -import { ConnectionLostError } from "@web/core/network/rpc_service"; +import { makeErrorFromResponse, ConnectionLostError } from "@web/core/network/rpc_service"; import { browser } from "@web/core/browser/browser"; // ----------------------------------------------------------------------------- @@ -490,8 +489,8 @@ download._download = (options) => { const filename = header ? parse(header).parameters.filename : null; _download(xhr.response, filename, mimetype); return resolve(filename); - - } else if (xhr.status === 502) { // If Odoo is behind another server (nginx) + } else if (xhr.status === 502) { + // If Odoo is behind another server (nginx) reject(new ConnectionLostError()); } else { const decoder = new FileReader(); @@ -502,18 +501,20 @@ download._download = (options) => { doc.body.children.length === 0 ? doc.body.childNodes : doc.body.children; let error; - try { // a Serialized python Error + try { + // a Serialized python Error const node = nodes[1] || nodes[0]; error = JSON.parse(node.textContent); } catch (e) { error = { message: "Arbitrary Uncaught Python Exception", data: { - debug: `${xhr.status}` + `\n` + - `${nodes.length > 0 ? nodes[0].textContent : ""} - ${nodes.length > 1 ? nodes[1].textContent : ""}` + debug: + `${xhr.status}` + + `\n` + + `${nodes.length > 0 ? nodes[0].textContent : ""} + ${nodes.length > 1 ? nodes[1].textContent : ""}`, }, - }; } error = makeErrorFromResponse(error); diff --git a/addons/web/static/src/legacy/js/public/public_root.js b/addons/web/static/src/legacy/js/public/public_root.js index 8dfd32f3d20..acf39b2c431 100644 --- a/addons/web/static/src/legacy/js/public/public_root.js +++ b/addons/web/static/src/legacy/js/public/public_root.js @@ -2,14 +2,13 @@ import ajax from 'web.ajax'; import dom from 'web.dom'; -import env from 'web.public_env'; +import legacyEnv from 'web.public_env'; import session from 'web.session'; import utils from 'web.utils'; import publicWidget from 'web.public.widget'; import { registry } from '@web/core/registry'; import AbstractService from "web.AbstractService"; -import legacyEnv from "web.public_env"; import lazyloader from "web.public.lazyloader"; import { @@ -68,7 +67,7 @@ export const PublicRoot = publicWidget.RootWidget.extend({ */ init: function () { this._super.apply(this, arguments); - this.env = env; + this.env = legacyEnv; this.publicWidgets = []; }, /** diff --git a/addons/web/static/src/search/favorite_menu/favorite_menu.js b/addons/web/static/src/search/favorite_menu/favorite_menu.js index d8061ef06a9..cb199fa30d0 100644 --- a/addons/web/static/src/search/favorite_menu/favorite_menu.js +++ b/addons/web/static/src/search/favorite_menu/favorite_menu.js @@ -5,8 +5,7 @@ import { DropdownItem } from "@web/core/dropdown/dropdown_item"; import { ConfirmationDialog } from "@web/core/confirmation_dialog/confirmation_dialog"; import { FACET_ICONS } from "../utils/misc"; import { registry } from "@web/core/registry"; -import { useBus } from "@web/core/utils/hooks"; -import { useService } from "@web/core/utils/hooks"; +import { useBus, useService } from "@web/core/utils/hooks"; const { Component } = owl; const favoriteMenuRegistry = registry.category("favoriteMenu"); diff --git a/addons/web/static/tests/search/search_model_tests.js b/addons/web/static/tests/search/search_model_tests.js index 6e96bbf1d02..90a0bfd9f43 100644 --- a/addons/web/static/tests/search/search_model_tests.js +++ b/addons/web/static/tests/search/search_model_tests.js @@ -1,8 +1,7 @@ /** @odoo-module **/ -import { patchDate } from "@web/../tests/helpers/utils"; +import { patchDate, patchWithCleanup } from "@web/../tests/helpers/utils"; import { makeWithSearch, setupControlPanelServiceRegistry } from "./helpers"; -import { patchWithCleanup } from "@web/../tests/helpers/utils"; const { Component, xml } = owl; diff --git a/addons/web/static/tests/setup.js b/addons/web/static/tests/setup.js index cfde1b13602..6952aab6610 100644 --- a/addons/web/static/tests/setup.js +++ b/addons/web/static/tests/setup.js @@ -1,8 +1,7 @@ /** @odoo-module **/ -import core from "web.core"; +import core, { _t } from "web.core"; import session from "web.session"; -import { _t } from "web.core"; import { browser, makeRAMLocalStorage } from "@web/core/browser/browser"; import { patchWithCleanup } from "@web/../tests/helpers/utils"; import { legacyProm } from "web.test_legacy"; diff --git a/addons/web_tour/static/tests/debug_manager_tests.js b/addons/web_tour/static/tests/debug_manager_tests.js index 9a8daa0bf7c..5ac9cda0bbe 100644 --- a/addons/web_tour/static/tests/debug_manager_tests.js +++ b/addons/web_tour/static/tests/debug_manager_tests.js @@ -9,9 +9,8 @@ import { uiService } from "@web/core/ui/ui_service"; import { click, getFixture, mount } from "@web/../tests/helpers/utils"; import { makeTestEnv } from "@web/../tests/helpers/mock_env"; -import { makeFakeLocalizationService } from "@web/../tests/helpers/mock_services"; +import { makeFakeLocalizationService, fakeCommandService } from "@web/../tests/helpers/mock_services"; import { DebugMenuParent } from "@web/../tests/core/debug/debug_manager_tests"; -import { fakeCommandService } from "@web/../tests/helpers/mock_services"; const debugRegistry = registry.category("debug"); let target; diff --git a/addons/website_payment/static/src/js/website_payment_form.js b/addons/website_payment/static/src/js/website_payment_form.js index 9d91a11321b..658b8108a47 100644 --- a/addons/website_payment/static/src/js/website_payment_form.js +++ b/addons/website_payment/static/src/js/website_payment_form.js @@ -1,7 +1,6 @@ /** @odoo-module **/ -import core from 'web.core'; -import {_t} from 'web.core'; +import core, { _t } from 'web.core'; import checkoutForm from 'payment.checkout_form'; checkoutForm.include({ diff --git a/odoo/addons/test_lint/tests/eslintrc b/odoo/addons/test_lint/tests/eslintrc index c0a1e623670..4d7d2f96b24 100644 --- a/odoo/addons/test_lint/tests/eslintrc +++ b/odoo/addons/test_lint/tests/eslintrc @@ -15,6 +15,7 @@ "no-debugger": ["error"], "no-dupe-class-members": ["error"], "no-unsafe-negation": ["error"], + "no-duplicate-imports": ["error"], "valid-typeof": ["error"] }, "globals": {