testfunc/test/test_jscript.py
author Aurelien Campeas <aurelien.campeas@logilab.fr>
Fri, 18 Jan 2013 17:37:35 +0100
branchstable
changeset 8657 5ab6ec83d5ba
parent 7363 2293c49b290a
permissions -rw-r--r--
[entity,views/json] backout 353bbd17a8b6 (reopens #2559931) Calling .complete() unconditionnally from the json encoder is unsafe since on entity creation validation: * an eid may have been drawn (hence even .has_eid() would not help) while processing form data in the edit controller * a ValidationError may have been raised and the entity-creating transaction rollbacked This leads to a crash on the return path from the validation to the browser, where the json_dumps((status, args, entity)) call will stumble upon the .complete() call which will fail because the entity does not (any more) exist in the database.

from cubicweb.devtools.qunit import QUnitTestCase, unittest_main

from os import path as osp


class JScript(QUnitTestCase):

    all_js_tests = (
        ("jstests/test_utils.js", (
            "../../web/data/cubicweb.js",
            "../../web/data/cubicweb.compat.js",
            "../../web/data/cubicweb.python.js",
            "jstests/utils.js",
            ),
         ),

        ("jstests/test_htmlhelpers.js", (
            "../../web/data/cubicweb.js",
            "../../web/data/cubicweb.compat.js",
            "../../web/data/cubicweb.python.js",
            "../../web/data/cubicweb.htmlhelpers.js",
            ),
         ),

        ("jstests/test_ajax.js", (
            "../../web/data/cubicweb.python.js",
            "../../web/data/cubicweb.js",
            "../../web/data/cubicweb.compat.js",
            "../../web/data/cubicweb.htmlhelpers.js",
            "../../web/data/cubicweb.ajax.js",
            ), (
            "jstests/ajax_url0.html",
            "jstests/ajax_url1.html",
            "jstests/ajax_url2.html",
            "jstests/ajaxresult.json",
            ),
         ),
    )


if __name__ == '__main__':
    unittest_main()