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
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
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
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)
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