summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qface/generator.py6
-rw-r--r--tests/in/empty_tuner_annotations.yaml0
-rw-r--r--tests/test_tags.py10
3 files changed, 15 insertions, 1 deletions
diff --git a/qface/generator.py b/qface/generator.py
index 297c2ef..5e55c47 100644
--- a/qface/generator.py
+++ b/qface/generator.py
@@ -344,7 +344,11 @@ class FileSystem(object):
if not Path(document).exists():
return
meta = FileSystem.load_yaml(document)
- click.secho('merge: {0}'.format(document.name), fg='blue')
+ if not meta:
+ click.secho('skipping empty: {0}'.format(document.name), fg='blue')
+ return
+ else:
+ click.secho('merge: {0}'.format(document.name), fg='blue')
try:
for identifier, data in meta.items():
symbol = system.lookup(identifier)
diff --git a/tests/in/empty_tuner_annotations.yaml b/tests/in/empty_tuner_annotations.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/in/empty_tuner_annotations.yaml
diff --git a/tests/test_tags.py b/tests/test_tags.py
index 0e70143..be9483c 100644
--- a/tests/test_tags.py
+++ b/tests/test_tags.py
@@ -69,6 +69,16 @@ def test_merge_annotation():
assert interface.attribute('extra', 'extraA') is True
@patch('sys.stderr', new_callable=StringIO)
+def test_merge_empty_annotation(mock_stderr):
+ system = loadTuner()
+ interface = system.lookup('com.pelagicore.ivi.tuner.Tuner')
+ assert interface
+ FileSystem.merge_annotations(system, inputPath / 'empty_tuner_annotations.yaml')
+
+ assert interface.attribute('extra', 'extraA') is None
+ assert not mock_stderr.getvalue().__contains__("Error parsing annotation")
+
+@patch('sys.stderr', new_callable=StringIO)
def test_merge_broken_annotation(mock_stderr):
system = loadTuner()
interface = system.lookup('com.pelagicore.ivi.tuner.Tuner')