hy_odoo/hy_odoo/tests/test_odoo.hy

283 lines
11 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]
hy-odoo.mtest *)
(import unittest
functools [partial]
xml.etree.ElementTree :as ET
hy-odoo.xml [XMLDictElement]
hy-odoo.odoo :as od)
(defclass TextOdooBase [(. unittest TestCase)]
"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))