def test_argument_list(empty_context): type1 = TypeRef("lang") type1.prefix = "const " type1.name = "Type1" type2 = TypeRef("lang") type2.name = "Type2" type2.suffix = " &" type2.id = "lang-type2" type3 = TypeRef("lang") type3.name = "Type3" type3.nested = [type1, type2] param1 = Parameter() param1.type = type1 param2 = Parameter() param2.type = type2 param2.name = "arg2" param3 = Parameter() param3.type = type3 param3.name = "arg3" assert (argument_list([param1, param2, param3], empty_context) == "(const Type1, xref:lang-type2[Type2] & arg2, " "Type3<const Type1, xref:lang-type2[Type2] &> arg3)")
def test_objc_method_signature__multiple_params_linked_return(context): method = Member("objc") method.name = "setValue:withUnit:andALongerParam:" method.returns = ReturnValue() method.returns.type = TypeRef("objc", name="Value") method.returns.type.id = "objc-value" param1 = Parameter() param1.name = "arg1" param1.type = TypeRef("objc", "Type1") param2 = Parameter() param2.name = "arg2" param2.type = TypeRef("objc", "Type2") param2.type.id = "objc-type2" param3 = Parameter() param3.name = "arg3" param3.type = TypeRef("objc", "Type3") method.params = [param1, param2, param3] assert (objc_method_signature( method, context) == "- (xref:objc-value[Value])setValue:(Type1)arg1\n" " withUnit:(xref:objc-type2[Type2])arg2\n" " andALongerParam:(Type3)arg3")
def test_type_list(): type1 = TypeRef("lang") type1.prefix = "const " type1.name = "Type1" type2 = TypeRef("lang") type2.name = "Type2" type2.suffix = " &" type2.id = "lang-type2" type3 = TypeRef("lang") type3.name = "Type3" type3.nested = [type1, type2] param1 = Parameter() param1.type = type1 param1.name = "arg1" param2 = Parameter() param2.type = type2 param2.name = "arg2" param3 = Parameter() param3.type = type3 param3.name = "arg3" assert (type_list([param1, param2, param3]) == "(const Type1, Type2 &, Type3<const Type1, Type2 &>)")
def test_type_list(empty_generating_api): type1 = TypeRef("lang") type1.prefix = "const " type1.name = "Type1" type2 = TypeRef("lang") type2.name = "Type2" type2.suffix = " &" type2.id = "lang-type2" type3 = TypeRef("lang") type3.name = "Type3" type3.nested = [type1, type2] param1 = Parameter() param1.type = type1 param1.name = "arg1" param2 = Parameter() param2.type = type2 param2.name = "arg2" param3 = Parameter() param3.type = type3 param3.name = "arg3" helper = TemplateHelper(empty_generating_api) assert (helper.type_list( [param1, param2, param3]) == "(const Type1, Type2 &, Type3<const Type1, Type2 &>)")
def test_print_ref__no_link__closure_prefix_suffix(api_mock): arg1_type = TypeRef("lang") arg1_type.name = "ArgType1" arg1_type.id = "lang-argtype1" arg1 = Parameter() arg1.type = arg1_type arg2_type = TypeRef("lang") arg2_type.name = "ArgType2" arg2 = Parameter() arg2.name = "value" arg2.type = arg2_type return_type = TypeRef("lang") return_type.name = "MyType" return_type.id = "lang-tomtom_1_MyType" return_type.prefix = "const " return_type.suffix = "&" ref = TypeRef("lang") ref.returns = return_type ref.args = [arg1, arg2] ref.prefix = "final " ref.suffix = "*" helper = TemplateHelper(api_mock) assert helper.print_ref( ref, link=False) == "final (const MyType&(ArgType1, ArgType2 value))*"
def test_objc_method_signature__multiple_params_linked_return(helper): method = Compound("objc") method.name = "setValue:withUnit:andALongerParam:" method.returns = ReturnValue() method.returns.type = TypeRef("objc", name="Value") method.returns.type.id = "objc-value" param1 = Parameter() param1.name = "arg1" param1.type = TypeRef("objc", "Type1") param2 = Parameter() param2.name = "arg2" param2.type = TypeRef("objc", "Type2") param2.type.id = "objc-type2" param3 = Parameter() param3.name = "arg3" param3.type = TypeRef("objc", "Type3") method.params = [param1, param2, param3] assert (helper.method_signature(method) == """\ - (xref:objc-value[++Value++])setValue:(Type1)arg1 withUnit:(xref:objc-type2[++Type2++])arg2 andALongerParam:(Type3)arg3""")
def test_print_ref__link__closure(api_mock): arg1_type = TypeRef("lang") arg1_type.name = "ArgType1" arg1_type.id = "lang-argtype1" arg1 = Parameter() arg1.type = arg1_type arg2_type = TypeRef("lang") arg2_type.name = "ArgType2" arg2 = Parameter() arg2.name = "value" arg2.type = arg2_type return_type = TypeRef("lang") return_type.name = "MyType" return_type.id = "lang-tomtom_1_MyType" ref = TypeRef("lang") ref.args = [arg1, arg2] ref.returns = return_type helper = TemplateHelper(api_mock) assert ( helper.print_ref(ref) == "xref:lang-tomtom_1_MyType[++MyType++](xref:lang-argtype1[++ArgType1++], ArgType2 " "value)") api_mock.link_to_element.assert_has_calls([ call(arg1_type.id, arg1_type.name), call(return_type.id, return_type.name) ])
def test_argument_list__with_types(empty_context): type1 = TypeRef("lang") type1.name = "Type1" type2 = TypeRef("lang") type2.name = "Type2" type2.id = "lang-type2" type3 = TypeRef("lang") type3.name = "Type3" type3.nested = [type1, type2] param1 = Parameter() param1.type = type1 param1.name = "arg1" param2 = Parameter() param2.type = type2 param2.name = "arg2" param3 = Parameter() param3.type = type3 param3.name = "arg3" assert (argument_list([param1, param2, param3], empty_context) == "(arg1: Type1, arg2: xref:lang-type2[Type2], " "arg3: Type3[Type1, xref:lang-type2[Type2]])")
def test_argument_list__empty_type(empty_context): type1 = TypeRef("lang") type2 = TypeRef("lang") param1 = Parameter() param1.type = type1 param1.name = "arg1" param2 = Parameter() param2.type = type2 param2.name = "arg2" assert (argument_list([param1, param2], empty_context) == "(arg1, arg2)")
def test_params__no_type(): param1 = Parameter() param1.type = None param1.name = "arg1" param2 = Parameter() param2.type = None param2.name = "arg2" member = Member("lang") member.params = [param1, param2] assert list(params(member)) == [param1, param2]
def test_argument_list__cls(empty_context): type1 = TypeRef("lang") type1.name = "cls" type2 = TypeRef("lang") type2.name = "Type2" type2.id = "lang-type2" param1 = Parameter() param1.type = type1 param2 = Parameter() param2.type = type2 param2.name = "arg2" assert (argument_list([param1, param2], empty_context) == "(cls, arg2: xref:lang-type2[Type2])")
def test_print_ref__no_link__closure_with_nested_type__custom_start_and_end( api_mock): nested_type = TypeRef("lang") nested_type.name = "Nested1" arg_type = TypeRef("lang") arg_type.name = "ArgType" arg_type.id = "lang-argtype" arg = Parameter() arg.type = arg_type return_type = TypeRef("lang") return_type.name = "MyType" return_type.prefix = "const " return_type.suffix = " &" return_type.id = "lang-tomtom_1_MyType" return_type.nested = [nested_type] ref = TypeRef("lang") ref.args = [arg] ref.returns = return_type class TestHelper(TemplateHelper): NESTED_START: str = "{" NESTED_END: str = ";" ARGS_START: str = "@" ARGS_END: str = "#" helper = TestHelper(api_mock) assert (helper.print_ref(ref, link=False) == "const MyType{Nested1; &@ArgType#")
def test_params__cls(): type1 = TypeRef("lang") type1.name = "cls" type2 = TypeRef("lang") type2.name = "float" param1 = Parameter() param1.type = type1 param2 = Parameter() param2.type = type2 param2.name = "arg2" member = Member("lang") member.params = [param1, param2] assert list(params(member)) == [param2]
def test_params__self(): type1 = TypeRef("lang") type1.name = "self" type2 = TypeRef("lang") type2.name = "float" param1 = Parameter() param1.type = type1 param2 = Parameter() param2.type = type2 param2.name = "arg2" member = Compound("lang") member.params = [param1, param2] assert list(params(member)) == [param2]
def test_type_and_name__no_name(empty_context): ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" param = Parameter() param.type = ref param.name = "" assert type_and_name(param, empty_context) == "const xref:lang-tomtom_1_MyType[MyType] &"
def test_parameter(helper): ref = TypeRef("lang") ref.name = "MyType" ref.id = "lang-tomtom_1_MyType" param = Parameter() param.type = ref param.name = "arg" param.default_value = "12" assert (helper.parameter(param, default_value=True) == "arg: xref:lang-tomtom_1_MyType[++MyType++] = 12")
def test_parameter__no_link(empty_generating_api): ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" param = Parameter() param.type = ref param.name = "arg" helper = TemplateHelper(empty_generating_api) assert helper.parameter(param, link=False) == "const MyType & arg"
def test_method_signature__one_param(helper): method = Compound("swift") method.name = "setValue" method.returns = ReturnValue() method.returns.type = TypeRef("swift", name="Value") param1 = Parameter() param1.name = "arg1" param1.type = TypeRef("objc", "Type1") method.params = [param1] assert helper.method_signature( method) == "func setValue(arg1: Type1) -> Value"
def test_objc_method_signature__one_param(context): method = Member("objc") method.name = "setValue:" method.returns = ReturnValue() method.returns.type = TypeRef("objc", name="Value") method.returns.type.id = "objc-value" param1 = Parameter() param1.name = "arg1" param1.type = TypeRef("objc", "Type1") method.params = [param1] assert objc_method_signature( method, context) == "- (xref:objc-value[Value])setValue:(Type1)arg1"
def test_parameter__no_name(empty_generating_api): ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" param = Parameter() param.type = ref param.name = "" helper = TemplateHelper(empty_generating_api) assert helper.parameter( param) == "const xref:lang-tomtom_1_MyType[++MyType++] &"
def test_objc_method_signature__one_param(helper): method = Compound("objc") method.name = "setValue:" method.returns = ReturnValue() method.returns.type = TypeRef("objc", name="Value") method.returns.type.id = "objc-value" param1 = Parameter() param1.name = "arg1" param1.type = TypeRef("objc", "Type1") method.params = [param1] assert helper.method_signature( method) == "- (xref:objc-value[++Value++])setValue:(Type1)arg1"
def test_parameter__default_value(empty_generating_api): ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" param = Parameter() param.type = ref param.name = "arg" param.default_value = "12" helper = TemplateHelper(empty_generating_api) assert helper.parameter( param, default_value=True ) == "const xref:lang-tomtom_1_MyType[++MyType++] & arg = 12"
def test_parameter__param_name_first(empty_generating_api): class _TemplateHelper(TemplateHelper): PARAM_NAME_FIRST = True ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" param = Parameter() param.type = ref param.name = "arg" param.prefix = "vararg " param.default_value = "12" helper = _TemplateHelper(empty_generating_api) assert (helper.parameter(param, default_value=True) == "vararg arg const xref:lang-tomtom_1_MyType[++MyType++] " "& = 12")