def test(self): src = "Item { function foo() {} function bar() {} }" lexer = Lexer(src) lexer.tokenize() qmlclass = QmlClass("Foo") qmlparser.parse(lexer.tokens, qmlclass) self.assertEqual(qmlclass.base_name, "Item") functions = qmlclass.get_functions() self.assertEqual(functions[0].name, "foo") self.assertEqual(functions[1].name, "bar") self.assertEqual(len(functions), 2)
def test_normal_arguments(self): src = """Item { function foo(arg1, arg2) { return arg1 + arg2; } }""" lexer = Lexer(src) lexer.tokenize() qmlclass = QmlClass("Foo") qmlparser.parse(lexer.tokens, qmlclass) functions = qmlclass.get_functions() self.assertEqual(functions[0].name, "foo") self.assertEqual(functions[0].type, "void")
def test_keyword_arguments(self): src = """Item { function foo(propertyArgument, signalArgument) { return propertyArgument + signalArgument; } }""" lexer = Lexer(src) lexer.tokenize() qmlclass = QmlClass("Foo") qmlparser.parse(lexer.tokens, qmlclass) functions = qmlclass.get_functions() self.assertEqual(functions[0].name, "foo") self.assertEqual(functions[0].type, "void")