Loading files
59219ad85This file is pinned to the selected release. Download the original to open it in your design tool.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from helpers import strip_image_file_extensions
"""
Test command "open-project" (basic parser tests)
"""
HELP_TEXT = """\
Usage: {executable} [options] open-project [command_options] project
LibrePCB Command Line Interface
Options:
-h, --help Print this message.
-V, --version Displays version information.
-v, --verbose Verbose output.
--erc Run the electrical rule check, print all
non-approved warnings/errors and report
failure (exit code = 1) if there are
non-approved messages.
--drc Run the design rule check, print all
non-approved warnings/errors and report
failure (exit code = 1) if there are
non-approved messages.
--drc-settings <file> Override DRC settings by providing a *.lp
file containing custom settings. If not
set, the settings from the boards will be
used instead.
--run-job <name> Run a particular output job. Can be given
multiple times to run multiple jobs.
--run-jobs Run all existing output jobs.
--jobs <file> Override output jobs with a *.lp file
containing custom jobs. If not set, the
jobs from the project will be used instead.
--outdir <path> Override the output base directory of
jobs. If not set, the standard output
directory from the project is used.
--export-schematics <file> [DEPRECATED, REPLACED BY: --run-jobs]
Export schematics to given file(s).
Existing files will be overwritten.
Supported file extensions: pdf, svg, ***
--export-bom <file> [DEPRECATED, REPLACED BY: --run-jobs]
Export generic BOM to given file(s).
Existing files will be overwritten.
Supported file extensions: csv
--export-board-bom <file> [DEPRECATED, REPLACED BY: --run-jobs]
Export board-specific BOM to given file(s).
Existing files will be overwritten.
Supported file extensions: csv
--bom-attributes <attributes> [DEPRECATED, REPLACED BY: --run-jobs]
Comma-separated list of additional
attributes to be exported to the BOM.
Example: "SUPPLIER, SKU"
--export-pcb-fabrication-data [DEPRECATED, REPLACED BY: --run-jobs]
Export PCB fabrication data
(Gerber/Excellon) according the fabrication
output settings of boards. Existing files
will be overwritten.
--pcb-fabrication-settings <file> [DEPRECATED, REPLACED BY: --jobs] Override
PCB fabrication output settings by
providing a *.lp file containing custom
settings. If not set, the settings from the
boards will be used instead.
--export-pnp-top <file> [DEPRECATED, REPLACED BY: --run-jobs]
Export pick&place file for automated
assembly of the top board side. Existing
files will be overwritten. Supported file
extensions: csv, gbr
--export-pnp-bottom <file> [DEPRECATED, REPLACED BY: --run-jobs]
Export pick&place file for automated
assembly of the bottom board side. Existing
files will be overwritten. Supported file
extensions: csv, gbr
--export-netlist <file> [DEPRECATED, REPLACED BY: --run-jobs]
Export netlist file for automated PCB
testing. Existing files will be
overwritten. Supported file extensions:
d356
--board <name> The name of the board(s) to export. Can be
given multiple times. If not set, all
boards are exported.
--board-index <index> Same as '--board', but allows to specify
boards by index instead of by name.
--remove-other-boards Remove all boards not specified with
'--board[-index]' from the project before
executing all the other actions. If
'--board[-index]' is not passed, all boards
will be removed. Pass '--save' to save the
modified project to disk.
--variant <name> The name of the assembly variant(s) to
export. Can be given multiple times. If not
set, all assembly variants are exported.
--variant-index <index> Same as '--variant', but allows to specify
assembly variants by index instead of by
name.
--set-default-variant <name> Move the specified assembly variant to the
top before executing all the other actions.
Pass '--save' to save the modified project
to disk.
--save Save project before closing it (useful to
upgrade file format).
--strict Fail if the project files are not strictly
canonical, i.e. there would be changes when
saving the project. Note that this option
is not available for *.lppz files.
Arguments:
open-project Open a project to execute project-related
tasks.
project Path to project file (*.lpp[z]).
"""
ERROR_TEXT = """\
{error}
Usage: {executable} [options] open-project [command_options] project
Help: {executable} open-project --help
"""
def test_help(cli):
code, stdout, stderr = cli.run("open-project", "--help")
assert stderr == ""
assert strip_image_file_extensions(stdout) == HELP_TEXT.format(
executable=cli.executable
)
assert code == 0
def test_no_arguments(cli):
code, stdout, stderr = cli.run("open-project")
assert stderr == ERROR_TEXT.format(
executable=cli.executable,
error="Missing arguments: project",
)
assert stdout == ""
assert code == 1
def test_invalid_argument(cli):
code, stdout, stderr = cli.run("open-project", "--invalid-argument")
assert stderr == ERROR_TEXT.format(
executable=cli.executable,
error="Unknown option 'invalid-argument'.",
)
assert stdout == ""
assert code == 1