[jsinterp] Reprioritizing TODOs in test_jsinterp_parser.py

This commit is contained in:
sulyi 2016-12-12 14:08:29 +01:00
parent 3ba28c6eef
commit cc9cb3096e
2 changed files with 45 additions and 9 deletions

View File

@ -733,7 +733,7 @@ class TestJSInterpreterParser(unittest.TestCase):
@unittest.skip('Test not yet implemented: missing ast') @unittest.skip('Test not yet implemented: missing ast')
def test_switch(self): def test_switch(self):
# TODO switch statement test # ASAP switch statement test
jsi = JSInterpreter( jsi = JSInterpreter(
''' '''
function a(x) { function a(x) {
@ -755,24 +755,59 @@ class TestJSInterpreterParser(unittest.TestCase):
ast = [] ast = []
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
@unittest.skip('Test not yet implemented: missing code and ast') @unittest.skip('Test not yet implemented: missing ast')
def test_for(self): def test_for(self):
# TODO for statement test # ASAP for statement test
# might be split up jsi = JSInterpreter('''
jsi = JSInterpreter('') function f(x){
for (var h = 0; h <= x; ++h) {
a = h;
}
return a
}
''')
ast = []
self.assertEqual(list(traverse(list(jsi.statements()))), list(traverse(ast)))
@unittest.skip('Test not yet implemented: missing ast')
def test_for_empty(self):
# ASAP for empty statement test
jsi = JSInterpreter('''
function f(){
var h = 0
for (; h < 2; ++h) {
a = h;
}
return a
}
''')
ast = []
self.assertEqual(list(traverse(list(jsi.statements()))), list(traverse(ast)))
@unittest.skip('Test not yet implemented: missing ast')
def test_for_in(self):
# ASAP for in statement test
jsi = JSInterpreter('''
function f(z){
for (h in z) {
a = h;
}
return a
}
''')
ast = [] ast = []
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
@unittest.skip('Test not yet implemented: missing code and ast') @unittest.skip('Test not yet implemented: missing code and ast')
def test_do(self): def test_do(self):
# TODO do statement test # ASAP do statement test
jsi = JSInterpreter('') jsi = JSInterpreter('')
ast = [] ast = []
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
@unittest.skip('Test not yet implemented: missing code and ast') @unittest.skip('Test not yet implemented: missing code and ast')
def test_while(self): def test_while(self):
# TODO while statement test # ASAP while statement test
jsi = JSInterpreter('') jsi = JSInterpreter('')
ast = [] ast = []
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
@ -787,14 +822,14 @@ class TestJSInterpreterParser(unittest.TestCase):
@unittest.skip('Test not yet implemented: missing code and ast') @unittest.skip('Test not yet implemented: missing code and ast')
def test_funct_expr(self): def test_funct_expr(self):
# TODO function expression test # ASAP function expression test
jsi = JSInterpreter('') jsi = JSInterpreter('')
ast = [] ast = []
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)
@unittest.skip('Test not yet implemented: missing code and ast') @unittest.skip('Test not yet implemented: missing code and ast')
def test_object(self): def test_object(self):
# TODO object literal test # ASAP object literal test
jsi = JSInterpreter('') jsi = JSInterpreter('')
ast = [] ast = []
self.assertEqual(list(jsi.statements()), ast) self.assertEqual(list(jsi.statements()), ast)

View File

@ -48,6 +48,7 @@ _RELATIONS = {
'>': (Token.GT, operator.gt), '>': (Token.GT, operator.gt),
'<=': (Token.LE, operator.le), '<=': (Token.LE, operator.le),
'>=': (Token.GE, operator.ge), '>=': (Token.GE, operator.ge),
# XXX add instanceof and in operators
# XXX check python and JavaScript equality difference # XXX check python and JavaScript equality difference
'==': (Token.EQ, operator.eq), '==': (Token.EQ, operator.eq),
'!=': (Token.NE, operator.ne), '!=': (Token.NE, operator.ne),