b56a03750f
Yield-from was introduced in 3.3, so we have to catch the compile error that's raise in 3.2. :(
28 lines
694 B
Hy
28 lines
694 B
Hy
;; Tests where the emited code relies on Python 3.
|
|
;; Conditionally included in nosetests runs.
|
|
|
|
(import [hy._compat [PY33]])
|
|
(import [hy.errors [HyCompileError]])
|
|
|
|
(defn test-yield-from []
|
|
"NATIVE: testing yield from"
|
|
|
|
(try
|
|
(eval
|
|
'(do (defn yield-from-test []
|
|
(for* [i (range 3)]
|
|
(yield i))
|
|
(yield-from [1 2 3]))
|
|
(assert (= (list (yield-from-test)) [0 1 2 1 2 3]))))
|
|
(catch [e HyCompileError]
|
|
;; Yield-from is supported in py3.3+ only
|
|
(assert (not PY33)))
|
|
(else (assert PY33))))
|
|
|
|
|
|
|
|
(defn test-exception-cause []
|
|
(try (raise ValueError :from NameError)
|
|
(except [e [ValueError]]
|
|
(assert (= (type (. e __cause__)) NameError)))))
|