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)
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", )
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)
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", )
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)
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)
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)
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", )
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)
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)))
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)))
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)
def parse_first_expr(src): return es5(src).children()[0].expr