Esempio n. 1
0
def test_get_kernel_interface_match_caseinsensitive():
    ''' Tests that the interface name is case insensitive'''
    module_parse_tree = parse(CODE_INTERFACE.replace("test_code", "TeST_CoDe"))
    kernel_type_name = "interface_found"
    meta1, meta2 = get_kernel_interface(kernel_type_name, module_parse_tree)
    assert meta1 == "test_code"
    assert meta2 is not None
Esempio n. 2
0
def test_get_kernel_interface_match_no_name():
    ''' Tests that the interface with no name returns None'''
    module_parse_tree = parse(CODE_INTERFACE.replace("test_code", ""))
    kernel_type_name = "interface_withnoname"
    meta1, meta2 = get_kernel_interface(kernel_type_name, module_parse_tree)
    assert meta1 is None
    assert meta2 is None
Esempio n. 3
0
def test_get_kernel_interface_no_match():
    ''' Tests that get_kernel_interface() returns None when searching
        a parse tree that does not contain an interface. '''
    module_parse_tree = parse(CODE)
    kernel_type_name = "no_interface_found"
    meta1, meta2 = get_kernel_interface(kernel_type_name, module_parse_tree)
    assert meta1 is None
    assert meta2 is None
Esempio n. 4
0
def test_get_kernel_interface_double_interface():
    ''' Tests that parse error occurs when the parse tree
        contains two interfaces.'''
    module_parse_tree = parse(CODE_DOUBLE_INTERFACE)
    kernel_type_name = "double_interface_kernel"
    with pytest.raises(ParseError) as excinfo:
        _, _ = get_kernel_interface(kernel_type_name, module_parse_tree)
    assert "Module containing kernel double_interface_kernel has more than "\
           "one interface, this is forbidden in the LFRic API."\
           in str(excinfo.value)
Esempio n. 5
0
def test_get_kernel_interface_match_correct():
    ''' Tests that the get_kernel_interface has correct return when searching
        for an interface that defines more than one module procedure. '''
    module_parse_tree = parse(CODE_DOUBLE_PROCEDURE)
    kernel_type_name = "interface_procedures"
    meta1, meta2 = get_kernel_interface(kernel_type_name, module_parse_tree)
    assert meta1 == "test_code"
    assert meta2[0] == "sub_code"
    assert meta2[1] == "more_code"
    assert len(meta2) == 2