Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
bae9c0e4eThis file is pinned to the selected release. Download the original to open it in your design tool.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import params
import pytest
"""
Test command "open-project" with all available options
"""
@pytest.mark.parametrize(
"project",
[
params.EMPTY_PROJECT_LPP_PARAM,
params.EMPTY_PROJECT_LPPZ_PARAM,
params.PROJECT_WITH_TWO_BOARDS_LPP_PARAM,
params.PROJECT_WITH_TWO_BOARDS_LPPZ_PARAM,
],
)
def test_everything(cli, project):
cli.suppress_deprecation_warnings = True
cli.add_project(project.dir, as_lppz=project.is_lppz)
# prepare "--export-schematics"
schematic = cli.abspath("schematic.pdf")
assert not os.path.exists(schematic)
# prepare "--export-bom"
bom = cli.abspath("bom.csv")
assert not os.path.exists(bom)
# prepare "--export-board-bom"
board_bom_dir = cli.abspath(project.output_dir + "/bom")
assert not os.path.exists(board_bom_dir)
board_bom = board_bom_dir + r"/{{BOARD}}.csv"
# prepare "--export-pnp-top" and "--export-pnp-bottom"
pnp_csv_dir = cli.abspath(project.output_dir + "/pnp_csv")
assert not os.path.exists(pnp_csv_dir)
pnp_top = pnp_csv_dir + r"/{{BOARD}}.csv"
pnp_gbr_dir = cli.abspath(project.output_dir + "/pnp_gbr")
assert not os.path.exists(pnp_gbr_dir)
pnp_bot = pnp_gbr_dir + r"/{{BOARD}}.gbr"
# prepare "--export-pcb-fabrication-data"
gerber_dir = cli.abspath(project.output_dir + "/gerber")
assert not os.path.exists(gerber_dir)
# prepare "--save"
path = cli.abspath(project.path)
with open(path, "ab") as f:
f.write(b"\0\0")
original_filesize = os.path.getsize(path)
# run the CLI
code, stdout, stderr = cli.run(
"open-project",
"--erc",
"--export-schematics={}".format(schematic),
"--export-bom={}".format(bom),
"--export-board-bom={}".format(board_bom),
"--export-pnp-top={}".format(pnp_top),
"--export-pnp-bottom={}".format(pnp_bot),
"--export-pcb-fabrication-data",
"--save",
project.path,
)
assert stderr == ""
assert len(stdout) > 100
assert stdout.endswith("SUCCESS\n")
assert code == 0
# check "--export-schematics"
assert os.path.exists(schematic)
# check "--export-bom"
assert os.path.exists(bom)
# check "--export-board-bom"
assert os.path.exists(board_bom_dir)
assert len(os.listdir(board_bom_dir)) == project.board_count
# check "--export-pnp-top"
assert os.path.exists(pnp_csv_dir)
assert len(os.listdir(pnp_csv_dir)) == project.board_count
# check "--export-pnp-bottom"
assert os.path.exists(pnp_gbr_dir)
assert len(os.listdir(pnp_gbr_dir)) == project.board_count
# check "--export-pcb-fabrication-data"
assert os.path.exists(gerber_dir)
assert len(os.listdir(gerber_dir)) == project.board_count * 9
# check "--save"
assert os.path.getsize(path) != original_filesize