def test_valid_contains_argument_types(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.ContainsExpr(ast.VariableExpr.DEFAULT,
                                                                   ast.Node(ast.NodeTypeDescriptor(type_='a')))), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert not error_log.contain_errors()
 def test_undefined_variable_in_method_expr(self):
     a = ast.FindRequireConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'), identifier='a'), '',
                                   constraint=ast.MethodExpr(ast.VariableExpr('b'), 'child', ast.IntegerExpr(5)))
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert error_log.contain_errors()
     assert len(error_log.get_errors()) == 1
 def test_invalid_minus_argument_types(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.UnaryMinusExpr(ast.StringExpr(''))), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert error_log.contain_errors()
     assert len(error_log.get_errors()) == 1
 def test_valid_minus_argument_types(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.EqualExpr(ast.UnaryMinusExpr(ast.IntegerExpr(1)),
                                                                ast.IntegerExpr(2))), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert not error_log.contain_errors()
 def test_valid_match_argument_types(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.MatchExpr(ast.StringExpr('t'),
                                                                ast.StringExpr('m'))), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert not error_log.contain_errors()
 def test_valid_or_argument_types(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.OrExpr(ast.BooleanExpr(True),
                                                             ast.BooleanExpr(False))), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert not error_log.contain_errors()
 def test_undefined_variable_in_node_query(self):
     a = ast.FindRequireConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'), identifier='a'), '',
                                   constraint=ast.NextSiblingExpr(ast.VariableExpr('b')))
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert error_log.contain_errors()
     assert len(error_log.get_errors()) == 1
 def test_diff_ineq_argument_types(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.NotEqualExpr(ast.StringExpr('t'), ast.IntegerExpr(5), 3)), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert error_log.contain_errors()
     assert len(error_log.get_errors_for_convention(a)) == 1
 def test_same_gr_eq_argument_types_integer(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.GreaterThanOrEqualExpr(ast.IntegerExpr(2),
                                                                             ast.IntegerExpr(2), 3)), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert not error_log.contain_errors()
 def test_same_eq_argument_types_list(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.EqualExpr(ast.ListExpr([]),
                                                                ast.ListExpr([]), 3)), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert not error_log.contain_errors()
 def test_invalid_boolean_constraint(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.IntegerExpr(1)), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert error_log.contain_errors()
     assert len(error_log.get_errors()) == 1
 def test_list_with_diff_elements(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.EqualExpr(ast.ListExpr([ast.IntegerExpr(1), ast.StringExpr('')]),
                                                                ast.IntegerExpr(2))), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert error_log.contain_errors()
     assert len(error_log.get_errors()) == 1
 def test_invalid_lt_argument_types(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.LessThanExpr(ast.NodeTypeExpr('t'),
                                                                   ast.IntegerExpr(5), 3)), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert error_log.contain_errors()
     assert len(error_log.get_errors()) == 1
 def test_invalid_contains_all_argument_types(self):
     a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'),
                                       constraint=ast.ContainsAllExpr(
                                           ast.VariableExpr.DEFAULT,
                                           ast.ListExpr([ast.IntegerExpr(2)]))), '')
     convention_set = self.wrap_convention_in_set(a)
     error_log = checker.TypeChecker.check(convention_set)
     assert error_log.contain_errors()
     assert len(error_log.get_errors()) == 1
Esempio n. 15
0
 def build_node_desc(type_):
     return ast.Node(ast.NodeTypeDescriptor(type_=type_))
Esempio n. 16
0
 def build_seq_desc_type(type_, repeater):
     return ast.WhitespaceNode(ast.NodeTypeDescriptor(type_=type_), repeater)
 def get_node_descriptor(self, ctx):
     if ctx.primary:
         return ast.NodeTypeDescriptor(type_=ctx.primary.text)
     lambda_string = self.get_type_expression_string(ctx)
     lambda_ = eval('lambda n: ' + lambda_string)
     return ast.NodeTypeDescriptor(func=lambda_)
 def get_ws_node_descriptor(self, text):
     return ast.NodeTypeDescriptor(type_=text)
Esempio n. 19
0
 def build_seq_desc(repeater):
     return ast.WhitespaceNode(ast.NodeTypeDescriptor(), repeater)