#! /usr/bin/env python # -*- coding: utf-8 -*- # # Copyright 2023 Jan Sebastian Götte # # 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. # import math from pathlib import Path import re import tempfile import json from unittest import mock import pytest from click.testing import CliRunner from bs4 import BeautifulSoup from .utils import * from .. import cli from ..utils import MM @pytest.fixture() def file_mock(): old = cli.GerberFile c_obj = cli.GerberFile = mock.Mock() i_obj = c_obj.open.return_value = mock.Mock() i_obj.bounding_box.return_value = (0, 0), (50, 100) yield i_obj cli.GerberFile = old class TestRender: def invoke(self, *args): runner = CliRunner() res = runner.invoke(cli.render, list(map(str, args))) print(res.output) if res.exception: raise res.exception 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') @pytest.mark.parametrize('reference', ['kicad-older'], indirect=True) def test_side(self, reference): without = self.invoke(reference, '--warnings=ignore') top = self.invoke(reference, '--top', '--warnings=ignore') bottom = self.invoke(reference, '--bottom', '--warnings=ignore') assert top.strip().startswith('