diff options
author | Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com> | 2017-01-16 13:42:11 +0100 |
---|---|---|
committer | Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com> | 2017-01-16 13:42:11 +0100 |
commit | 6bd5d555a69f190f5ba019c7817db1e24fb6594c (patch) | |
tree | 6b0ae3978814422f719e7a4ef370b61ab3ffa13f | |
parent | c464487eaa8fbbc4f2990716fc7683cfd9478857 (diff) | |
download | qtivi-qface-6bd5d555a69f190f5ba019c7817db1e24fb6594c.tar.gz |
updated tests for qtcpp filters. Primitive models are now expected to be a QmlVariantModel
-rw-r--r-- | qface/helper/qtcpp.py | 28 | ||||
-rw-r--r-- | tests/test_qtcpp_helper.py | 34 |
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) + + |