;; Copyright 2022 Fabien Bourgeois ;; ;; This Source Code Form is subject to the terms of the Mozilla Public ;; License, v. 2.0. If a copy of the MPL was not distributed with this ;; file, You can obtain one at https://mozilla.org/MPL/2.0/. " Odoo Helpers tests " (require hyrule.control [defmain] odoo.addons.hy-odoo.mtest *) (import unittest functools [partial] xml.etree.ElementTree :as ET odoo.tests [tagged] odoo.tests.common [TransactionCase] odoo.addons.hy-odoo.xml [XMLDictElement] odoo.addons.hy-odoo.odoo :as od) (defclass [(tagged "hyodoo" "hyodoo.odoo")] TextOdooBase [TransactionCase] "Odoo Helpers tests" (defn test-odoo [self] " Test odoo function " (setv element (od.odoo [])) (o-assert-is-instance element (. ET Element)) (o-assert-equal (. element tag) "odoo")) (defn test-data [self] " Test data function " (setv element (od.data [])) (o-assert-is-instance element XMLDictElement) (o-assert-equal element.tag "data") (o-assert-equal element.attrs {}) (setv element (od.data {"one" "attribute"} [])) (o-assert-is-instance element XMLDictElement) (o-assert-equal element.tag "data") (o-assert-equal element.attrs {"one" "attribute"})) (defn test-aliases [self] " Test simple aliases to xmln " (setv element (od.record {"one" "attribute"} "A child")) (o-assert-is-instance element XMLDictElement) (o-assert-equal element.tag "record") (o-assert-equal element.attrs {"one" "attribute"}) (o-assert-equal element.children ["A child"]) (setv element (od.tree)) (o-assert-is-instance element XMLDictElement) (o-assert-equal element.tag "tree")) (defn test-act-window-model [self] " Test act_window function " (setv element (od.act_window_model "sample.model" {"view_type" "form"})) (o-assert-is-instance element XMLDictElement) (o-assert-equal element.tag "act_window") (o-assert-equal (get (. element attrs) "view_type") "form") (o-assert-equal (get (. element attrs) "id") "sample_model_view_action") (o-assert-equal (get (. element attrs) "res_model") "sample.model") (o-assert-equal (get (. element attrs) "name") "Sample Model Action")) (defn test-menunitem-model [self] " Test menuitem function " (setv element (od.menuitem-model "sample.model" {"groups" "base.user_employee"})) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "menuitem") (o-assert-equal (get (. element attrs) "groups") "base.user_employee") (o-assert-equal (get (. element attrs) "id") "sample_model_menu") (o-assert-equal (get (. element attrs) "action") "sample_model_view_action")) (defn test-attribute [self] " Test attribute function " (setv element (od.attribute "invisible" "1")) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "attribute") (o-assert-equal (get (. element attrs) "name") "invisible") (o-assert-equal (. element children) ["1"])) (defn test-fields [self] " Test fields function " (setv element (od.field {"one" "attribute"} "A child")) (o-assert-is-instance element XMLDictElement) (o-assert-equal element.tag "field") (setv element (od.field-name "A name")) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "field") (o-assert-equal (get (. element attrs) "name") "name") (o-assert-equal (. element children) ["A name"]) (setv element (od.field-model "sample.model")) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "field") (o-assert-equal (get (. element attrs) "name") "model") (o-assert-equal (. element children) ["sample.model"]) (setv element (od.field-inherit "module.xml_view")) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "field") (o-assert-equal (get (. element attrs) "name") "inherit_id") (o-assert-equal (get (. element attrs) "ref") "module.xml_view") (o-assert-false (. element children)) (setv element (od.field-arch)) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "field") (o-assert-equal (get (. element attrs) "name") "arch") (o-assert-equal (get (. element attrs) "type") "xml") (o-assert-false (. element children))) (defn test-view [self] " Test view function " (setv element (od.view "view_xmlid" [])) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "record") (o-assert-equal (get (. element attrs) "id") "view_xmlid") (o-assert-equal (get (. element attrs) "model") "ir.ui.view") (o-assert-false (. element children))) (defn test-view-def [self] " Test view def function " (setv element (od.view_def "view_xmlid" "View" "sample.model" [])) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "record") (o-assert-equal (get (. element attrs) "id") "view_xmlid") (o-assert-equal (get (. element attrs) "model") "ir.ui.view") (o-assert-equal (len (. element children)) 3) (setv child (get (. element children) 0)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "name") (o-assert-equal (. child children) ["View"]) (setv child (get (. element children) 1)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "model") (o-assert-equal (. child children) ["sample.model"]) (setv child (get (. element children) 2)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "arch") (o-assert-equal (get (. child attrs) "type") "xml") (o-assert-false (. child children))) (defn test-view-new [self] " Test view-new function " (setv element (od.view-new "tree" "sample.model" [])) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element.tag) "record") (o-assert-equal (get (. element attrs) "id") "sample_model_view_tree") (o-assert-equal (get (. element attrs) "model") "ir.ui.view") (o-assert-equal (len (. element children)) 3) (setv child (get (. element children) 0)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "name") (o-assert-equal (. child children) ["Sample Model Tree"]) (setv child (get (. element children) 1)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "model") (o-assert-equal (. child children) ["sample.model"]) (setv child (get (. element children) 2)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "arch") (o-assert-equal (get (. child attrs) "type") "xml") (o-assert-false (. child children))) (defn test_view_inherit [self] " Test view_inherit function " (setv element (od.view-inherit "odoo.addons.module" "sample.model" "parent.view" [])) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "record") (o-assert-equal (get (. element attrs) "id") "view_inherit_module") (o-assert-equal (get (. element attrs) "model") "ir.ui.view") (o-assert-equal (len (. element children)) 4) (setv child (get (. element children) 0)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "name") (o-assert-equal (. child children) ["Sample Model Adaptations"]) (setv child (get (. element children) 1)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "model") (o-assert-equal (. child children) ["sample.model"]) (setv child (get (. element children) 2)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "inherit_id") (o-assert-false (. child children)) (setv child (get (. element children) 3)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "arch") (o-assert-equal (get (. child attrs) "type") "xml") (o-assert-false (. child children))) (defn test-actions-server-code [self] " Test actions-server-code function " (setv element (od.actions-server-code "sample.xmlid" "Code" "sample.model" "record.do_something()")) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "record") (o-assert-equal (get (. element attrs) "id") "sample.xmlid") (o-assert-equal (get (. element attrs) "model") "ir.actions.server") (o-assert-equal (len (. element children)) 4) (setv child (get (. element children) 0)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "name") (o-assert-equal (. child children) ["Code"]) (setv child (get (. element children) 1)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "model_id") (o-assert-equal (get (. child attrs) "ref") "sample.model") (o-assert-false (. child children)) (setv child (get (. element children) 2)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "state") (o-assert-equal (. child children) ["code"]) (setv child (get (. element children) 3)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "code") (o-assert-equal (. child children) ["record.do_something()"])) (defn test-client-action-multi [self] " Test client_action_multi function " (setv element (od.client-action-multi "sample.xmlid" "Multi" "sample.model" "sample.action")) (o-assert-is-instance element XMLDictElement) (o-assert-equal (. element tag) "record") (o-assert-equal (get (. element attrs) "id") "sample.xmlid") (o-assert-equal (get (. element attrs) "model") "ir.values") (o-assert-equal (len (. element children)) 4) (setv child (get (. element children) 0)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "name") (o-assert-equal (. child children) ["Multi"]) (setv child (get (. element children) 1)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "key2") (o-assert-equal (get (. child attrs) "eval") "'client_action_multi'") (o-assert-false (. child children)) (setv child (get (. element children) 2)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "model") (o-assert-equal (get (. child attrs) "eval") "'sample.model'") (setv child (get (. element children) 3)) (o-assert-is-instance child XMLDictElement) (o-assert-equal (. child tag) "field") (o-assert-equal (get (. child attrs) "name") "value") (o-assert-equal (get (. child attrs) "eval") "'ir.actions.server,%d'%sample.action"))) (defmain [] (.main unittest))