From 1dd848a53e7191914e3ebaabceb07ba66070bd35 Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Thu, 27 Jan 2022 11:13:56 +0100 Subject: Don't report an error when parsing an empty annotations file Fixes: #64 --- qface/generator.py | 6 +++++- tests/in/empty_tuner_annotations.yaml | 0 tests/test_tags.py | 10 ++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 tests/in/empty_tuner_annotations.yaml 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 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 @@ -68,6 +68,16 @@ def test_merge_annotation(): FileSystem.merge_annotations(system, inputPath / 'tuner_annotations.yaml') 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() -- cgit v1.2.1