Exemple #1
0
 def test_statements_in_module_body_are_transformed(self):
     module_node = nodes.module([nodes.expression_statement(nodes.ref("value"))], is_executable=True)
     module_type = types.module("blah", [])
     _assert_transform(
         module_node,
         cc.module([cc.expression_statement(cc.ref("value"))], is_executable=True, exported_names=[]),
         type_lookup=[(module_node, module_type)]
     )
    def non_executable_module_adds_value_to_modules_object(self):
        node = cc.module([], is_executable=False, exported_names=["x"])
        module = LocalModule("blah.py", node)
        
        expected = """internal class Module__blah_py {
    internal static dynamic Init() {
        dynamic __module = new System.Dynamic.ExpandoObject();
        __module.x = x;
        return __module;
    }
}
"""
        assert_equal(expected, cs.dumps(transform(module)))
    def executable_module_is_converted_to_class_with_main_method(self):
        node = cc.module([
            cc.expression_statement(cc.call(cc.ref("f"), []))
        ], is_executable=True)
        module = LocalModule("blah.py", node)
        
        expected = """internal class Program {
    internal static void Main() {
        f();
    }
}
"""
        assert_equal(expected, cs.dumps(transform(module)))
def test_transform_module_with_exports():
    _assert_transform(
        cc.module([
            cc.declare("__all__"),
            cc.declare("x"),
            cc.assign(cc.ref("__all__"), cc.list_literal([cc.str_literal("x")])),
            cc.assign(cc.ref("x"), cc.none)
        ], exported_names=["x"]),
        """
            var __all__;
            var x;
            __all__ = ["x"];
            x = null;
            $exports.x = x;
        """
    )
Exemple #5
0
 def test_module_exports_are_set_directly_on_module(self):
     module_node = nodes.module(
         [nodes.assign([nodes.ref("value")], nodes.none())],
         is_executable=False
     )
     module_type = types.module("blah", [types.attr("value", types.none_type)])
     _assert_transform(
         module_node,
         cc.module(
             [
                 cc.declare("value"),
                 cc.assign(cc.ref("value"), cc.none)
             ],
             is_executable=False,
             exported_names=["value"],
         ),
         type_lookup=[(module_node, module_type)]
     )
def test_transform_module():
    _assert_transform(
        cc.module([cc.expression_statement(cc.ref("x"))], is_executable=False, exported_names=[]),
        js.statements([js.expression_statement(js.ref("x"))])
    )
 def auxiliary_definitions_are_included_in_module(self):
     node = cc.module([cc.class_("A", methods=[], body=[])], is_executable=True)
     module = LocalModule("blah.py", node)
     
     assert_in("class __A", cs.dumps(transform(module)))