devtools/test/unittest_qunit.py
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Mon, 24 Jun 2013 11:59:45 +0200
changeset 9033 614bf73cc126
parent 8930 6a02be304486
child 10887 a0315e9f4c20
permissions -rw-r--r--
[service] drop the asynchronous execution possibility Call_service was able of both sync and sync execution making the API confusing. There is not user of the async case. We drop the async argument in favor of synchronous execution only. This makes call_service the official API to call server side code from the client side. This is a remplacement for the usual monkey patching of the repo object. The zmq notification bus is a solid alternative for codes that needs to start an async execution.

from logilab.common.testlib import unittest_main
from cubicweb.devtools.qunit import QUnitTestCase

from os import path as osp

JSTESTDIR = osp.abspath(osp.join(osp.dirname(__file__), 'data', 'js_examples'))


def js(name):
    return osp.join(JSTESTDIR, name)

class QUnitTestCaseTC(QUnitTestCase):

    all_js_tests = (
                    (js('test_simple_success.js'),),
                    (js('test_with_dep.js'), (js('dep_1.js'),)),
                    (js('test_with_ordered_deps.js'), (js('dep_1.js'), js('deps_2.js'),)),
                   )


    def test_simple_failure(self):
        js_tests = list(self._test_qunit(js('test_simple_failure.js')))
        self.assertEqual(len(js_tests), 3)
        test_1, test_2, test_3 = js_tests
        self.assertRaises(self.failureException, test_1[0], *test_1[1:])
        self.assertRaises(self.failureException, test_2[0], *test_2[1:])
        test_3[0](*test_3[1:])


if __name__ == '__main__':
    unittest_main()