コード例 #1
0
    def test_probe_amd_static(self):
        source = textwrap.dedent("""
        require(['example1', "example2"], function(example1, example2) {
        });
        """).lstrip()

        self.assertEqual(len(list(extract_dynamic_require(es5(source)))), 0)
コード例 #2
0
 def test_create_calmjs_require_dynamic(self):
     # should be modified.
     node = es5("require(dynamic);")
     self.assertEqual(
         pretty_print(convert_dynamic_require(node)),
         "require('__calmjs_loader__').require(dynamic);\n",
     )
コード例 #3
0
    def test_probe_commonjs_static(self):
        source = textwrap.dedent("""
        var example1 = require('example1');
        var example2 = require("example2");
        """).lstrip()

        self.assertEqual(len(list(extract_dynamic_require(es5(source)))), 0)
コード例 #4
0
 def test_convert_calmjs_require_static(self):
     node = es5("require('static');")
     # should be unchanged.
     self.assertEqual(
         pretty_print(convert_dynamic_require(node)),
         "require('static');\n",
     )
コード例 #5
0
 def test_deferrable_resolve(self):
     self.setup_defaults()
     # define the replacement in the map that was set up.
     self.replacement['$'] = 'jq'
     tree = es5('var w = $(window).width();')
     recreated = ''.join(c.text for c in walk(self.dispatcher, tree))
     self.assertEqual('var w = jq(window).width();', recreated)
     self.assertEqual(['w'], self.declared_vars)
コード例 #6
0
    def test_probe_other_access_types(self):
        source = textwrap.dedent("""
        __calmjs_loader__.require(value);
        require('__calmjs_loader__').require(value);
        """).lstrip()

        # none of these should have been extracted
        self.assertEqual(len(list(extract_dynamic_require(es5(source)))), 0)
コード例 #7
0
    def test_probe_commonjs_dynamic(self):
        source = textwrap.dedent("""
        var example1 = require('example1');
        var example2 = require(example1.value);
        var example3 = require(exampl2.parent + '/index');
        """).lstrip()

        self.assertEqual(len(list(extract_dynamic_require(es5(source)))), 2)
コード例 #8
0
 def test_create_calmjs_require_nested_require(self):
     # nested one should be converted.
     node = es5("require(require(dynamic));")
     self.assertEqual(
         pretty_print(convert_dynamic_require(node)),
         "require('__calmjs_loader__').require("
         "require('__calmjs_loader__').require(dynamic));\n",
     )
コード例 #9
0
 def test_probe_amd_dynamic(self):
     source = textwrap.dedent("""
     var source = "example.package"
     require(['root', source + '/index', source], function(root, idx) {
     });
     require(['root'], function(root) {
     });
     require([source], function(source) {
     });
     """).lstrip()
     self.assertEqual(len(list(extract_dynamic_require(es5(source)))), 2)
コード例 #10
0
 def test_dynamic_commonjs_in_dynamic_amd(self):
     node = es5("""
     require([dynamic], function(module) {
       var redefined = require(dynamic);
     });
     """)
     self.assertEqual(
         textwrap.dedent("""
     require('__calmjs_loader__').require([dynamic], function(module) {
       var redefined = require('__calmjs_loader__').require(dynamic);
     });
     """).lstrip(), pretty_print(convert_dynamic_require(node)))
コード例 #11
0
 def test_dynamic_commonjs_in_static_amd(self):
     # nested one should be converted.
     node = es5("""
     require(['jQuery', 'underscore'], function($, _) {
       var dynamic_module = require(dynamic);
     });
     """)
     self.assertEqual(
         textwrap.dedent("""
     require(['jQuery', 'underscore'], function($, _) {
       var dynamic_module = require('__calmjs_loader__').require(dynamic);
     });
     """).lstrip(), pretty_print(convert_dynamic_require(node)))
コード例 #12
0
 def test_layouts_buffering(self):
     self.setup_defaults()
     # The buffered layout rule handler should be invoked with the
     # Node that originally queued the LayoutRuleChunk (rather, the
     # walk should have done that for the Node).
     original = 'var a = 1;'
     tree = es5(original)
     recreated = ''.join(c.text for c in walk(self.dispatcher, tree))
     # see that this at least works as expected
     self.assertEqual(original, recreated)
     # ensure that the 3 spaces have been handled as expected
     self.assertEqual(len(self.layouts_handled), 3)
     # the first Space should be derived from VarStatement
     self.assertTrue(isinstance(self.layouts_handled[0][1], VarStatement))
     # last two are in VarDecl
     self.assertTrue(isinstance(self.layouts_handled[1][1], VarDecl))
     self.assertTrue(isinstance(self.layouts_handled[2][1], VarDecl))
     self.assertEqual(['a'], self.declared_vars)
コード例 #13
0
def parse_first_expr(src):
    return es5(src).children()[0].expr