diff options
author | Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com> | 2017-01-16 08:19:39 +0100 |
---|---|---|
committer | Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com> | 2017-01-16 08:19:39 +0100 |
commit | 54655f218af8e2c641dee93f9d79dae60f61ef80 (patch) | |
tree | 09a5e6780ebbe66dca005bbe26ae2d2b471cb548 | |
parent | 2d8e09ae8a5508f75a68bd6eded0194bec1cecf8 (diff) | |
download | qtivi-qface-54655f218af8e2c641dee93f9d79dae60f61ef80.tar.gz |
added initial tests for primitive qtcpp helpers
-rw-r--r-- | qface/helper/qtcpp.py | 4 | ||||
-rw-r--r-- | tests/test_qtcpp_helper.py | 135 |
2 files changed, 138 insertions, 1 deletions
diff --git a/qface/helper/qtcpp.py b/qface/helper/qtcpp.py index ae288c3..458de61 100644 --- a/qface/helper/qtcpp.py +++ b/qface/helper/qtcpp.py @@ -24,6 +24,8 @@ class Filters(object): return 'QString()' if t.is_real: return '0.0' + if t.is_variant: + return 'QVariant()' elif t.is_void: return '' elif t.is_enum: @@ -76,7 +78,7 @@ class Filters(object): return 'QVariant' if symbol.type.name == 'real': return 'qreal' - return symbol.type + return symbol.type.name elif symbol.type.is_list: nested = Filters.returnType(symbol.type.nested) return 'QVariantList'.format(nested) diff --git a/tests/test_qtcpp_helper.py b/tests/test_qtcpp_helper.py new file mode 100644 index 0000000..0d7da64 --- /dev/null +++ b/tests/test_qtcpp_helper.py @@ -0,0 +1,135 @@ +import logging +import logging.config +from pathlib import Path + +from qface.idl.domain import * +from qface.helper import qtcpp + +logging.basicConfig() + +log = logging.getLogger(__name__) + + +src = Path('tests/in') + +system = System() +module = Module('org.example', system) +interface = Interface('Test', module) +operation = Operation('echo', interface) +parameter = Parameter('message', operation) +parameter.type.name = 'string' +parameter.type.is_primitive = True + + +def test_return_type(): + interface = system.lookup('org.example.Test') + assert interface + operation = interface._operationMap['echo'] + assert operation + parameter = operation._parameterMap['message'] + + # bool + parameter.type.name = 'bool' + assert parameter.type.is_bool + answer = qtcpp.Filters.returnType(parameter) + assert answer == 'bool' + + # int + parameter.type.name = 'int' + assert parameter.type.is_int + answer = qtcpp.Filters.returnType(parameter) + assert answer == 'int' + + # real + parameter.type.name = 'real' + assert parameter.type.is_real + answer = qtcpp.Filters.returnType(parameter) + assert answer == 'qreal' + + # string + parameter.type.name = 'string' + assert parameter and parameter.type.is_string + answer = qtcpp.Filters.returnType(parameter) + assert answer == 'QString' + + # var + parameter.type.name = 'var' + assert parameter and parameter.type.is_variant + answer = qtcpp.Filters.returnType(parameter) + assert answer == 'QVariant' + + +def test_default_value(): + interface = system.lookup('org.example.Test') + assert interface + operation = interface._operationMap['echo'] + assert operation + parameter = operation._parameterMap['message'] + + # bool + parameter.type.name = 'bool' + assert parameter.type.is_bool + answer = qtcpp.Filters.defaultValue(parameter) + assert answer == 'false' + + # int + parameter.type.name = 'int' + assert parameter.type.is_int + answer = qtcpp.Filters.defaultValue(parameter) + assert answer == '0' + + # real + parameter.type.name = 'real' + assert parameter.type.is_real + answer = qtcpp.Filters.defaultValue(parameter) + assert answer == '0.0' + + # string + parameter.type.name = 'string' + assert parameter and parameter.type.is_string + answer = qtcpp.Filters.defaultValue(parameter) + assert answer == 'QString()' + + # var + parameter.type.name = 'var' + assert parameter and parameter.type.is_variant + answer = qtcpp.Filters.defaultValue(parameter) + assert answer == 'QVariant()' + + +def test_parameter_type(): + interface = system.lookup('org.example.Test') + assert interface + operation = interface._operationMap['echo'] + assert operation + parameter = operation._parameterMap['message'] + name = parameter.name + # bool + parameter.type.name = 'bool' + assert parameter.type.is_bool + answer = qtcpp.Filters.parameterType(parameter) + assert answer == 'bool {0}'.format(name) + + # int + parameter.type.name = 'int' + assert parameter.type.is_int + answer = qtcpp.Filters.parameterType(parameter) + assert answer == 'int {0}'.format(name) + + # real + parameter.type.name = 'real' + assert parameter.type.is_real + answer = qtcpp.Filters.parameterType(parameter) + assert answer == 'qreal {0}'.format(name) + + # string + parameter.type.name = 'string' + assert parameter and parameter.type.is_string + answer = qtcpp.Filters.parameterType(parameter) + assert answer == 'const QString &{0}'.format(name) + + # var + parameter.type.name = 'var' + assert parameter and parameter.type.is_variant + answer = qtcpp.Filters.parameterType(parameter) + assert answer == 'const QVariant &{0}'.format(name) |