summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2017-01-16 08:19:39 +0100
committerJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2017-01-16 08:19:39 +0100
commit54655f218af8e2c641dee93f9d79dae60f61ef80 (patch)
tree09a5e6780ebbe66dca005bbe26ae2d2b471cb548
parent2d8e09ae8a5508f75a68bd6eded0194bec1cecf8 (diff)
downloadqtivi-qface-54655f218af8e2c641dee93f9d79dae60f61ef80.tar.gz
added initial tests for primitive qtcpp helpers
-rw-r--r--qface/helper/qtcpp.py4
-rw-r--r--tests/test_qtcpp_helper.py135
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)