37 lines
1.6 KiB
Hy
37 lines
1.6 KiB
Hy
;; -*- coding: utf-8 -*-
|
|
;;
|
|
;; Copyright 2021 Fabien Bourgeois <fabien@yaltik.com>
|
|
;;
|
|
;; This program is free software: you can redistribute it and/or modify
|
|
;; it under the terms of the GNU Affero General Public License as
|
|
;; published by the Free Software Foundation, either version 3 of the
|
|
;; License, or (at your option) any later version.
|
|
;;
|
|
;; This program is distributed in the hope that it will be useful,
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;; GNU Affero General Public License for more details.
|
|
;;
|
|
;; You should have received a copy of the GNU Affero General Public License
|
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
" Hy Odoo Tests Helpers and Macros "
|
|
|
|
(defmacro o-assert-equal [left right] `(.assertEqual self ~left ~right))
|
|
(defmacro o-assert-true [val] `(.assertTrue self ~val))
|
|
(defmacro o-assert-false [val] `(.assertFalse self ~val))
|
|
(defmacro o-assert-in [left right] `(.assertIn self ~left ~right))
|
|
(defmacro o-assert-not-in [left right] `(.assertNotIn self ~left ~right))
|
|
(defmacro o-assert-raises [Error] `(.assertRaises self ~Error))
|
|
|
|
(defmacro odo-assert-raises [Error body]
|
|
"Macro to test Error with self.assertRaises and do block"
|
|
`(with [err (.assertRaises self ~Error)] ~body))
|
|
|
|
(defmacro o-test [name body]
|
|
"Macro for unit test case"
|
|
(setv fn-name (% "test-%s" (str name))
|
|
humanized-name (.replace (str name) "-" " ")
|
|
descr (bytes (% "Test %s" humanized-name)))
|
|
`(defn ~(HySymbol fn-name) [self] ~descr ~body))
|