summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2017-03-27 13:30:51 +0200
committerJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2017-03-27 13:30:51 +0200
commited21dc746ab255e0764d9b39e09daf3bbf0022e0 (patch)
tree16f512514a6a79522707ceebf3b9292695d6fad1
parent21c6b85cac73391b9027a8aef7ca08310fc65075 (diff)
downloadqtivi-qface-ed21dc746ab255e0764d9b39e09daf3bbf0022e0.tar.gz
Tags which have no value are treated as flags now. So you can detect them with if test in templates
-rw-r--r--qface/idl/listener.py3
-rw-r--r--tests/in/com.pelagicore.ivi.tuner.qface1
-rw-r--r--tests/test_tags.py8
3 files changed, 11 insertions, 1 deletions
diff --git a/qface/idl/listener.py b/qface/idl/listener.py
index 2969baa..61c668e 100644
--- a/qface/idl/listener.py
+++ b/qface/idl/listener.py
@@ -73,7 +73,8 @@ class DomainListener(TListener):
attrs = tag.tagAttributeSymbol()
for attr in attrs:
attr_name = attr.name.text
- attr_value = attr.value.text
+ # if no value, handle name as a flag
+ attr_value = attr.value.text if attr.value else True
symbol.add_attribute(tag_name, attr_name, attr_value)
def enterEveryRule(self, ctx):
diff --git a/tests/in/com.pelagicore.ivi.tuner.qface b/tests/in/com.pelagicore.ivi.tuner.qface
index 765e9f5..0e6a20d 100644
--- a/tests/in/com.pelagicore.ivi.tuner.qface
+++ b/tests/in/com.pelagicore.ivi.tuner.qface
@@ -3,6 +3,7 @@ module com.pelagicore.ivi.tuner 1.0;
/** Service Tuner */
@service()
@interface()
+@config(private)
interface Tuner {
/** property currentStation */
readonly Station currentStation;
diff --git a/tests/test_tags.py b/tests/test_tags.py
index 527b623..d22d46a 100644
--- a/tests/test_tags.py
+++ b/tests/test_tags.py
@@ -44,3 +44,11 @@ def test_meta_tags():
interface = system.lookup('com.pelagicore.ivi.tuner.Tuner')
assert interface
assert 'port' in interface.tags
+
+
+def test_flag():
+ system = loadTuner()
+ interface = system.lookup('com.pelagicore.ivi.tuner.Tuner')
+ assert interface
+ assert interface.attribute('config', 'private') is True
+