285 lines
12 KiB
Hy
285 lines
12 KiB
Hy
;; Copyright 2022 Fabien Bourgeois <fabien@yaltik.com>
|
|
;;
|
|
;; 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))
|