summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2017-01-16 13:42:11 +0100
committerJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2017-01-16 13:42:11 +0100
commit6bd5d555a69f190f5ba019c7817db1e24fb6594c (patch)
tree6b0ae3978814422f719e7a4ef370b61ab3ffa13f
parentc464487eaa8fbbc4f2990716fc7683cfd9478857 (diff)
downloadqtivi-qface-6bd5d555a69f190f5ba019c7817db1e24fb6594c.tar.gz
updated tests for qtcpp filters. Primitive models are now expected to be a QmlVariantModel
-rw-r--r--qface/helper/qtcpp.py28
-rw-r--r--tests/test_qtcpp_helper.py34
2 files changed, 57 insertions, 5 deletions
diff --git a/qface/helper/qtcpp.py b/qface/helper/qtcpp.py
index 458de61..aba3176 100644
--- a/qface/helper/qtcpp.py
+++ b/qface/helper/qtcpp.py
@@ -3,6 +3,11 @@ Provides helper functionality specificially for Qt C++/QML code generators
"""
+def upper_first(s):
+ s = str(s)
+ return s[0].upper() + s[1:]
+
+
class Filters(object):
"""provides a set of filters to be used with the template engine"""
classPrefix = 'Qml'
@@ -38,9 +43,11 @@ class Filters(object):
elif symbol.type.is_struct:
return 'Qml{0}()'.format(symbol.type)
elif symbol.type.is_model:
- nested = Filters.returnType(symbol.type.nested)
- return 'new {0}Model(this)'.format(nested)
-
+ nested = symbol.type.nested
+ if nested.is_primitive:
+ return 'new QmlVariantModel(this)'
+ elif nested.is_complex:
+ return 'new Qml{0}Model(this)'.format(nested)
return 'XXX'
@staticmethod
@@ -61,9 +68,14 @@ class Filters(object):
nested = Filters.returnType(symbol.type.nested)
return 'const QVariantList &{1}'.format(nested, symbol)
elif symbol.type.is_model:
- return 'Qml{0}Model *{1}'.format(symbol.type.nested, symbol)
+ nested = symbol.type.nested
+ if nested.is_primitive:
+ return 'QmlVariantModel *{0}'.format(symbol)
+ elif nested.is_complex:
+ return 'Qml{0}Model *{1}'.format(nested, symbol)
else:
return 'const {0}{1} &{2}'.format(classPrefix, symbol.type, symbol)
+ return 'XXX'
@staticmethod
def returnType(symbol):
@@ -83,6 +95,12 @@ class Filters(object):
nested = Filters.returnType(symbol.type.nested)
return 'QVariantList'.format(nested)
elif symbol.type.is_model:
- return 'Qml{0}Model*'.format(symbol.type.nested)
+ nested = symbol.type.nested
+ if nested.is_primitive:
+ return 'QmlVariantModel *'
+ elif nested.is_complex:
+ return 'Qml{0}Model *'.format(nested)
else:
return '{0}{1}'.format(classPrefix, symbol.type)
+ return 'XXX'
+
diff --git a/tests/test_qtcpp_helper.py b/tests/test_qtcpp_helper.py
index 586f8bd..d86dfd1 100644
--- a/tests/test_qtcpp_helper.py
+++ b/tests/test_qtcpp_helper.py
@@ -25,6 +25,8 @@ interface Test {
Status status;
list<int> list001;
list<Message> list002;
+ model<int> model001;
+ model<Message> model002;
}
@@ -84,6 +86,16 @@ def test_return_type():
answer = qtcpp.Filters.returnType(prop)
assert answer == 'QVariantList'
+ # check for model of primitive
+ prop = interface._propertyMap['model001']
+ answer = qtcpp.Filters.returnType(prop)
+ assert answer == 'QmlVariantModel *'
+
+ # check for model of structs
+ prop = interface._propertyMap['model002']
+ answer = qtcpp.Filters.returnType(prop)
+ assert answer == 'QmlMessageModel *'
+
def test_default_value():
system = parse_document()
@@ -125,6 +137,16 @@ def test_default_value():
answer = qtcpp.Filters.defaultValue(prop)
assert answer == 'QVariantList()'
+ # check for model of primitive
+ prop = interface._propertyMap['model001']
+ answer = qtcpp.Filters.defaultValue(prop)
+ assert answer == 'new QmlVariantModel(this)'
+
+ # check for model of structs
+ prop = interface._propertyMap['model002']
+ answer = qtcpp.Filters.defaultValue(prop)
+ assert answer == 'new QmlMessageModel(this)'
+
def test_parameter_type():
system = parse_document()
@@ -166,3 +188,15 @@ def test_parameter_type():
prop = interface._propertyMap['list002']
answer = qtcpp.Filters.parameterType(prop)
assert answer == 'const QVariantList &{0}'.format(prop.name)
+
+ # check for model of primitive
+ prop = interface._propertyMap['model001']
+ answer = qtcpp.Filters.parameterType(prop)
+ assert answer == 'QmlVariantModel *{0}'.format(prop.name)
+
+ # check for model of structs
+ prop = interface._propertyMap['model002']
+ answer = qtcpp.Filters.parameterType(prop)
+ assert answer == 'QmlMessageModel *{0}'.format(prop.name)
+
+