class TestBaseVisitorVisitExprAndPass: def setUp(self): self.v = BaseVisitor('test.jpx', {}, 2) self.v.visit_Str = lambda n: self.v.output(n.s) self.v.visit_Module(ast.Module([])) def test_expr(self): self.v.visit(ast.Expr(ast.Str('foo'))) assert self.v.stack[-1].body == [' ', 'foo', ';\n'] def test_pass(self): self.v.visit(ast.Pass()) assert self.v.stack[-1].body == [] @raises(NotImplementedError) def test_generic_visit(self): self.v.visit(ast.Print())
class TestBaseVisitorVisitModule: def setUp(self): self.v = BaseVisitor('test.jpx', {}, 2) self.v.visit_Str = lambda n: self.v.output(n.s) self.v.visit_Module(ast.Module([ast.Str('foo')])) def test_module_attr(self): assert isinstance(self.v.module, ModuleContext) def test_indent(self): assert self.v.module.indent == self.v.default_indent def test_stack(self): assert self.v.stack == [self.v.module] def test_body(self): assert self.v.module.body == ['foo']