diff options
author | jaseg <git@jaseg.de> | 2023-02-21 23:18:56 +0100 |
---|---|---|
committer | jaseg <git@jaseg.de> | 2023-02-21 23:18:56 +0100 |
commit | 866eafb4eb1648483877125e838af79cd6c156e5 (patch) | |
tree | 1bdd9a9a29b7e43b30e582043dd1d2e66e89fc88 | |
parent | 16f1247fda50061faa95609493c773f4e769006e (diff) | |
download | gerbonara-866eafb4eb1648483877125e838af79cd6c156e5.tar.gz gerbonara-866eafb4eb1648483877125e838af79cd6c156e5.tar.bz2 gerbonara-866eafb4eb1648483877125e838af79cd6c156e5.zip |
Add cli test infrastructure
-rw-r--r-- | gerbonara/cli.py | 1 | ||||
-rw-r--r-- | gerbonara/tests/test_cli.py | 42 |
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') + |