def test_suite(self) -> None: # Test that we can insert various types of statement suites into a # spot accepting a suite. module = parse_template_module( "if x is True: {suite}\n", suite=cst.SimpleStatementSuite(body=(cst.Pass(),),), ) self.assertEqual( module.code, "if x is True: pass\n", ) module = parse_template_module( "if x is True: {suite}\n", suite=cst.IndentedBlock(body=(cst.SimpleStatementLine((cst.Pass(),),),),), ) self.assertEqual( module.code, "if x is True:\n pass\n", ) module = parse_template_module( "if x is True:\n {suite}\n", suite=cst.SimpleStatementSuite(body=(cst.Pass(),),), ) self.assertEqual( module.code, "if x is True: pass\n", ) module = parse_template_module( "if x is True:\n {suite}\n", suite=cst.IndentedBlock(body=(cst.SimpleStatementLine((cst.Pass(),),),),), ) self.assertEqual( module.code, "if x is True:\n pass\n", )
def test_statement(self) -> None: # Test that we can insert various types of statements into a # statement list. module = parse_template_module( "{statement1}\n{statement2}\n{statement3}\n", statement1=cst.If( test=cst.Name("foo"), body=cst.SimpleStatementSuite((cst.Pass(),),), ), statement2=cst.SimpleStatementLine((cst.Expr(cst.Call(cst.Name("bar"))),),), statement3=cst.Pass(), ) self.assertEqual( module.code, "if foo: pass\nbar()\npass\n", )
def test_simple_module(self) -> None: module = parse_template_module( self.dedent(""" from {module} import {obj} def foo() -> {obj}: return {obj}() """), module=cst.Name("foo"), obj=cst.Name("Bar"), ) self.assertEqual( module.code, self.dedent(""" from foo import Bar def foo() -> Bar: return Bar() """), )