コード例 #1
0
_NS_ = findItem(Namespace("clojure.core"), Symbol("*ns*"))


def mapTest(ns, var):
    class Test(unittest.TestCase):
        def testVar(self):
            with threadBindings({_NS_: var.ns}):
                var()

    name = ns + str(var)
    tst = Test
    tst.__name__ = name
    globals()[name] = tst


for x in os.listdir(os.path.dirname(__file__)):
    if x.endswith(".clj") and x.find("test") >= 0:
        print "Reading tests from",  x
        requireClj(os.path.join(os.path.dirname(__file__),x))
        folder, file = os.path.split(x)
        ns, ext = os.path.splitext(x)
        module = sys.modules["tests."+ns]

        for idx in dir(module):
            var = getattr(module, idx)
            if isinstance(var, Var) and str(var).endswith("tests"):
                meta = var.meta()
                if meta and meta[Keyword("test")]:
                    mapTest(ns, var) 

コード例 #2
0
_NS_ = findItem(Namespace("clojure.core"), Symbol("*ns*"))


def mapTest(ns, var):
    class Test(unittest.TestCase):
        def testVar(self):
            with threadBindings({_NS_: var.ns}):
                var()

    name = ns + str(var)
    tst = Test
    tst.__name__ = name
    globals()[name] = tst


for x in os.listdir(os.path.dirname(__file__)):
    if x.endswith(".clj") and x.find("test") >= 0:
        print "Reading tests from", x
        requireClj(os.path.join(os.path.dirname(__file__), x))
        folder, file = os.path.split(x)
        ns, ext = os.path.splitext(x)
        module = sys.modules["tests." + ns]

        for idx in dir(module):
            var = getattr(module, idx)
            if isinstance(var, Var) and str(var).endswith("tests"):
                meta = var.meta()
                if meta and meta[Keyword("test")]:
                    mapTest(ns, var)
コード例 #3
0
import pprint
from textwrap import dedent
import unittest

from clojure.main import requireClj
from clojure.lang.compiler import Compiler
from clojure.lang.fileseq import StringReader
from clojure.lang.globals import currentCompiler
from clojure.lang.lispreader import read
import clojure.lang.rt as RT
from clojure.lang.symbol import symbol
from clojure.util.byteplay import Code, Label, SetLineno
from clojure.lang.persistentlist import PersistentList
from clojure.lang.persistentvector import PersistentVector

requireClj(os.path.join(os.path.dirname(__file__), '../clojure/core.clj'))


class ClojureCoreTests(unittest.TestCase):
    def eval(self, code):
        r = StringReader(code)
        s = read(r, True, None, True)
        res = self.comp.compile(s)
        return self.comp.executeCode(res)

    def setUp(self):
        RT.init()
        self.comp = Compiler()
        currentCompiler.set(self.comp)
        self.comp.setNS(symbol('clojure.core'))
コード例 #4
0
import pprint
from textwrap import dedent
import unittest

from clojure.main import requireClj
from clojure.lang.compiler import Compiler
from clojure.lang.fileseq import StringReader
from clojure.lang.globals import currentCompiler
from clojure.lang.lispreader import read
import clojure.lang.rt as RT
from clojure.lang.symbol import symbol
from clojure.util.byteplay import Code, Label, SetLineno
from clojure.lang.persistentlist import PersistentList
from clojure.lang.persistentvector import PersistentVector

requireClj('./clojure/core.clj')


class ClojureCoreTests(unittest.TestCase):
    def eval(self, code):
        r = StringReader(code)
        s = read(r, True, None, True)
        res = self.comp.compile(s)
        return self.comp.executeCode(res)

    def setUp(self):
        RT.init()
        self.comp = Compiler()
        currentCompiler.set(self.comp)
        self.comp.setNS(symbol('clojure.core'))
コード例 #5
0
from itertools import chain, repeat
import pprint
from textwrap import dedent
import unittest

from clojure.main import requireClj
from clojure.lang.compiler import Compiler
from clojure.lang.fileseq import StringReader
from clojure.lang.globals import currentCompiler
from clojure.lang.lispreader import read
import clojure.lang.rt as RT
from clojure.lang.symbol import symbol
from clojure.util.byteplay import Code, Label, SetLineno

requireClj('./clojure/core.clj')

# for Python 2.6
try:
    skip = unittest.skip
except AttributeError:

    def skip(f):
        def ret():
            pass

        return ret


class NonOverloadedFunctions(unittest.TestCase):
    def setUp(self):
        RT.init()