45 lines
942 B
Hy
45 lines
942 B
Hy
|
(defclass WithTest [object]
|
||
|
[(--init--
|
||
|
(fn [self val]
|
||
|
(setv self.val val)
|
||
|
None))
|
||
|
|
||
|
(--enter--
|
||
|
(fn [self]
|
||
|
self.val))
|
||
|
|
||
|
(--exit--
|
||
|
(fn [self type value traceback]
|
||
|
(setv self.val None)))])
|
||
|
|
||
|
(defn test-single-with []
|
||
|
"NATIVE: test a single with"
|
||
|
(with [[t (WithTest 1)]]
|
||
|
(assert (= t 1))))
|
||
|
|
||
|
(defn test-two-with []
|
||
|
"NATIVE: test two withs"
|
||
|
(with [[t1 (WithTest 1)]
|
||
|
[t2 (WithTest 2)]]
|
||
|
(assert (= t1 1))
|
||
|
(assert (= t2 2))))
|
||
|
|
||
|
(defn test-thrice-with []
|
||
|
"NATIVE: test three withs"
|
||
|
(with [[t1 (WithTest 1)]
|
||
|
[t2 (WithTest 2)]
|
||
|
[t3 (WithTest 3)]]
|
||
|
(assert (= t1 1))
|
||
|
(assert (= t2 2))
|
||
|
(assert (= t3 3))))
|
||
|
|
||
|
(defn test-quince-with []
|
||
|
"NATIVE: test four withs, one with no args"
|
||
|
(with [[t1 (WithTest 1)]
|
||
|
[t2 (WithTest 2)]
|
||
|
[t3 (WithTest 3)]
|
||
|
[(WithTest 4)]]
|
||
|
(assert (= t1 1))
|
||
|
(assert (= t2 2))
|
||
|
(assert (= t3 3))))
|