1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import params
import pytest
"""
Test command "open-project --erc"
"""
@pytest.mark.parametrize("project", [params.EMPTY_PROJECT_LPP_PARAM])
def test_project_with_approved_message(cli, project):
cli.add_project(project.dir, as_lppz=project.is_lppz)
# Add a unused net.
with open(cli.abspath(project.dir + '/circuit/circuit.lp'), 'w') as f:
f.write(
'(librepcb_circuit'
' (variant 2511a923-d9f8-4cd0-940b-346185fbe32d (name "AV0")'
' (description "")'
' )'
' (netclass ada6400e-cb5c-41b6-9a4e-e2f39ffa3383 (name "C"))'
' (net 0654411b-a090-4025-a026-4c61e686662e (auto false) (name "N")'
' (netclass ada6400e-cb5c-41b6-9a4e-e2f39ffa3383)'
' )'
')'
)
# Approve the resulting message.
with open(cli.abspath(project.dir + '/circuit/erc.lp'), 'w') as f:
f.write(
'(librepcb_erc'
' (approved open_net (net 0654411b-a090-4025-a026-4c61e686662e))'
')'
)
code, stdout, stderr = cli.run('open-project', '--erc', project.path)
assert stderr == ''
assert stdout == \
"Open project '{project.path}'...\n" \
"Run ERC...\n" \
" Approved messages: 1\n" \
" Non-approved messages: 0\n" \
"SUCCESS\n".format(project=project)
assert code == 0
@pytest.mark.parametrize("project", [params.EMPTY_PROJECT_LPP_PARAM])
def test_project_without_messages(cli, project):
cli.add_project(project.dir, as_lppz=project.is_lppz)
# Make sure there are no approved messages.
with open(cli.abspath(project.dir + '/circuit/erc.lp'), 'w') as f:
f.write('(librepcb_erc)')
# now the actual test...
code, stdout, stderr = cli.run('open-project', '--erc', project.path)
assert stderr == ''
assert stdout == \
"Open project '{project.path}'...\n" \
"Run ERC...\n" \
" Approved messages: 0\n" \
" Non-approved messages: 0\n" \
"SUCCESS\n".format(project=project)
assert code == 0
@pytest.mark.parametrize("project", [params.EMPTY_PROJECT_LPP_PARAM])
def test_project_with_nonapproved_message(cli, project):
cli.add_project(project.dir, as_lppz=project.is_lppz)
# Add a unused net.
with open(cli.abspath(project.dir + '/circuit/circuit.lp'), 'w') as f:
f.write(
'(librepcb_circuit'
' (variant 2511a923-d9f8-4cd0-940b-346185fbe32d (name "AV0")'
' (description "")'
' )'
' (netclass ada6400e-cb5c-41b6-9a4e-e2f39ffa3383 (name "C"))'
' (net 0654411b-a090-4025-a026-4c61e686662e (auto false) (name "N")'
' (netclass ada6400e-cb5c-41b6-9a4e-e2f39ffa3383)'
' )'
')'
)
# Make sure there are no approved messages.
with open(cli.abspath(project.dir + '/circuit/erc.lp'), 'w') as f:
f.write('(librepcb_erc)')
# now the actual test...
code, stdout, stderr = cli.run('open-project', '--erc', project.path)
assert stderr == " - [WARNING] Less than two pins in net: 'N'\n"
assert stdout == \
"Open project '{project.path}'...\n" \
"Run ERC...\n" \
" Approved messages: 0\n" \
" Non-approved messages: 1\n" \
"Finished with errors!\n".format(project=project)
assert code == 1
|