summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjaseg <git@jaseg.de>2023-02-21 23:18:56 +0100
committerjaseg <git@jaseg.de>2023-02-21 23:18:56 +0100
commit866eafb4eb1648483877125e838af79cd6c156e5 (patch)
tree1bdd9a9a29b7e43b30e582043dd1d2e66e89fc88
parent16f1247fda50061faa95609493c773f4e769006e (diff)
downloadgerbonara-866eafb4eb1648483877125e838af79cd6c156e5.tar.gz
gerbonara-866eafb4eb1648483877125e838af79cd6c156e5.tar.bz2
gerbonara-866eafb4eb1648483877125e838af79cd6c156e5.zip
Add cli test infrastructure
-rw-r--r--gerbonara/cli.py1
-rw-r--r--gerbonara/tests/test_cli.py42
2 files changed, 43 insertions, 0 deletions
diff --git a/gerbonara/cli.py b/gerbonara/cli.py
index d24088e..845e44a 100644
--- a/gerbonara/cli.py
+++ b/gerbonara/cli.py
@@ -299,6 +299,7 @@ def transform(transform, units, output_format, inpath, outpath,
@cli.command()
+@click.option('--version', is_flag=True, callback=print_version, expose_value=False, is_eager=True)
@click.option('--command-line-units', type=Unit(), help='''Units for values given in --transform. Default:
millimeter''')
@click.option('--warnings', 'format_warnings', type=click.Choice(['default', 'ignore', 'once']), default='default',
diff --git a/gerbonara/tests/test_cli.py b/gerbonara/tests/test_cli.py
new file mode 100644
index 0000000..b42a216
--- /dev/null
+++ b/gerbonara/tests/test_cli.py
@@ -0,0 +1,42 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# Copyright 2023 Jan Sebastian Götte <gerbonara@jaseg.de>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from pathlib import Path
+
+import pytest
+from click.testing import CliRunner
+
+from .utils import *
+from ..cli import render, rewrite, transform, merge, bounding_box, layers, meta
+
+class TestRender:
+ def invoke(self, *args):
+ runner = CliRunner()
+ res = runner.invoke(render, list(map(str, args)))
+ print(res.output)
+ assert res.exit_code == 0
+ return res.output
+
+ def test_basic(self):
+ assert self.invoke('--version').startswith('Version ')
+
+ @pytest.mark.parametrize('reference', ['example_flash_obround.gbr'], indirect=True)
+ def test_warnings(self, reference):
+ with pytest.warns(UserWarning):
+ self.invoke(reference, '--warnings=once')
+