""" Tests of Printing PCB files We test: - PDF for bom.kicad_pcb For debug information use: pytest-3 --log-cli-level debug """ import os import sys # Look for the 'utils' module from where the script is running prev_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) if prev_dir not in sys.path: sys.path.insert(0, prev_dir) # Utils import from utils import context PDF_DIR = 'Layers' PDF_FILE = 'bom-F_Cu+F_SilkS.pdf' PDF_FILE_B = 'PCB_Bot.pdf' def test_print_pcb_simple(): prj = 'bom' ctx = context.TestContext('print_pcb_simple', prj, 'print_pcb', PDF_DIR) ctx.run() # Check all outputs are there ctx.expect_out_file(os.path.join(PDF_DIR, PDF_FILE)) ctx.clean_up() def test_print_pcb_refill(): prj = 'zone-refill' ctx = context.TestContext('print_pcb_refill', prj, 'print_pcb_zone-refill', '') ctx.run() ctx.expect_out_file(PDF_FILE_B) ctx.compare_image(PDF_FILE_B) ctx.clean_up() def test_print_variant_1(): prj = 'kibom-variant_3' ctx = context.TestContext('print_variant_1', prj, 'print_pcb_variant_1', '') ctx.run() # Check all outputs are there fname = prj+'-F_Fab.pdf' ctx.search_err(r'KiCad project file not found', True) ctx.expect_out_file(fname) ctx.compare_pdf(fname) ctx.clean_up(keep_project=True) def test_print_pcb_options(): prj = 'bom' ctx = context.TestContext('print_pcb_options', prj, 'print_pcb_options', PDF_DIR) ctx.run() # Check all outputs are there ctx.expect_out_file(PDF_FILE) ctx.compare_pdf(PDF_FILE) ctx.clean_up() def test_print_wrong_paste(): prj = 'wrong_paste' ctx = context.TestContext('print_wrong_paste', prj, 'wrong_paste', PDF_DIR) ctx.run() # Check all outputs are there fname = prj+'-F_Fab.pdf' ctx.expect_out_file(fname) ctx.search_err(r'Pad with solder paste, but no copper') ctx.clean_up()