def testSemantic(self): program = util.source( """ class Test1: def Foo(): print self """ ) util.semanticProgram(program)
def testSemantic(self): program = util.source(''' class Test: pass var o as System.Object var t = Test() o = t as System.Object ''') util.semanticProgram(program, ['mscorlib'])
def testParse(self): program = util.source(''' var s = "Hello" var o as System.Object o = s as System.Object var p = System.Object() as System.Object var q = o as System.String as System.Object as System.String ''') util.semanticProgram(program, ['mscorlib'])
def testSemantic2(self): program = '''var a as array(testy)''' self.assertRaises( error.NameError, lambda: util.semanticProgram(program, []) )
def testGlobalFuncSelf(self): program = util.source( """ def GlobalFunc(): print self """ ) self.assertRaises(error.SyntaxError, lambda: util.semanticProgram(program))
def testOverloadMatchFail(self): program = util.source(''' var x = System.String("There is no overload for System.String that recieves a string.") ''') self.assertRaises( error.TypeError, lambda: util.semanticProgram(program, ['mscorlib']) )
def testFunctionScopeSelf(self): program = util.source( """ def Foo(): print self """ ) self.assertRaises(error.SyntaxError, lambda: util.semanticProgram(program))
def testTypeMismatch(self): program = util.source(''' print 5 or 2 ''') self.failUnlessRaises( error.TypeError, lambda: util.semanticProgram(program) )
def testOuterBreak(self): program = util.source(''' break ''') self.assertRaises( error.SyntaxError, lambda: util.semanticProgram(program) )
def testStaticMethodScopeSelf(self): program = util.source( """ class Test: static def Foo(): print self """ ) self.assertRaises(error.SyntaxError, lambda: util.semanticProgram(program))
def testClassNoAttributeExists(self): program = util.source(''' class X: [ThisNameIsNotDefined] ''') self.assertRaises( error.NameError, lambda: util.semanticProgram(program) )
def testModifiers2(self): program = util.source(''' class C: sealed virtual def bork(): pass ''') self.assertRaises( error.SyntaxError, lambda: util.semanticProgram(program) )
def testSemanticTryFinallyExcept(self): program = util.source(''' try: pass finally: pass except: pass''' ) self.assertRaises(Exception, lambda: util.semanticProgram(program, []))
def testImplicitCast(self): # TODO:this isn't implemented yet... if it is you will need to fix this test from tests import util prog = util.source( """ var x as char = 'c' """ ) self.assertRaises(error.TypeError, lambda: util.semanticProgram(prog))
def testOverride3(self): program = util.source(''' class MyClass(System.Object): override def ToString(x as int) as string: return "Also shouldn't work" ''') self.assertRaises( error.OverrideError, lambda: util.semanticProgram(program, ['mscorlib']) )
def testOverride2(self): program = util.source(''' class MyClass(System.Object): virtual def ToString() as string: return "Shouldn't work!" ''') self.assertRaises( error.OverrideError, lambda: util.semanticProgram(program, ['mscorlib']) )
def testSemantic(self): program = util.source(''' try: pass except: pass finally: pass''' ) st = util.semanticProgram(program, []) self.assertNotEqual(None, st)
def testBadCast(self): program = util.source(''' class A: pass class B: pass var a as A var b = B() a = b as A ''') self.assertRaises( error.TypeError, lambda: util.semanticProgram(program) )
def testSemanticClassWithAttribute(self): from ast.classdecl import ClassDecl program = util.source(''' class X: [TestClass.Thingie] pass ''') result = util.semanticProgram(program, ['bin/ClassLibrary1']) x = result[0] self.assertTrue(isinstance(x, ClassDecl)) self.assertEqual(1, len(x.attributes)) attr = x.attributes[0] self.assertEqual('ThingieAttribute', attr.className.name)
def testOuterContinue(self): self.failUnlessRaises( error.SyntaxError, lambda: util.semanticProgram('continue') )
def testNameResolve(self): from ast.vartypes import Type program = 'System.Configuration.Assemblies.AssemblyHash' sast = util.semanticProgram(program, ['mscorlib']) assert isinstance(sast[0].expr, Type), `expr`
def testSemantic(self): program = """var x = 3<<2""" util.semanticProgram(program)
def testBad2Semantic(self): program = """var x = 3<<2.2""" try: util.semanticProgram(program) except: assert True
def testSemantic(self): program = 'import System.IO' sast = util.semanticProgram(program, ['mscorlib']) assert isinstance(sast[0], ImportStatement), sast
def testModuleScopeSelf(self): program = util.source("print self") self.assertRaises(error.SyntaxError, lambda: util.semanticProgram(program))
def testSemantic(self): program = util.source(''' var x = System.Object() ''') result = util.semanticProgram(program, ['mscorlib'])
def testGetNestedType(self): program = util.source(''' var o as TestClass.TestClass.NestedClass ''') util.semanticProgram(program, ['ClassLibrary1'])
def testSemantic(self): program = '''var a as array(int, 2)''' util.semanticProgram(program, [])
def testSemantic(self): program = util.source(''' var x = TestClass.TestClass() var y = x.x ''') result = util.semanticProgram(program, ['bin/ClassLibrary1'])