mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-10-30 01:32:21 +00:00
Let's use the text mode everywhere because Unicode codepoints is what matters. The only catch on Windows turned out to be the default file IO encoding; forcing UTF-8 there fixes all issues in the CI (and it makes sense because that file was written out in a UTF-8 locale, and the system which runs the test suite might be set to something else. This was a rather interesting debugging experience; passing logs over the web and handling "strange" characters as utf-8 did not help. Change-Id: I1fdbe3a115458558b27a81f9eab8e58c9605bae7 Bug: https://github.com/Telecominfraproject/oopt-gnpy/issues/358
46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from pathlib import Path
|
|
import os
|
|
import pytest
|
|
import subprocess
|
|
from gnpy.tools.cli_examples import transmission_main_example, path_requests_run
|
|
|
|
SRC_ROOT = Path(__file__).parent.parent
|
|
|
|
|
|
@pytest.mark.parametrize("output, handler, args", (
|
|
('transmission_main_example', transmission_main_example, []),
|
|
('path_requests_run', path_requests_run, []),
|
|
('transmission_main_example__raman', transmission_main_example,
|
|
['gnpy/example-data/raman_edfa_example_network.json', '--sim', 'gnpy/example-data/sim_params.json', '--show-channels', ]),
|
|
('openroadm-Stockholm-Gothenburg', transmission_main_example,
|
|
['-e', 'gnpy/example-data/eqpt_config_openroadm.json', 'gnpy/example-data/Sweden_OpenROADM_example_network.json', ]),
|
|
))
|
|
def test_example_invocation(capfd, output, handler, args):
|
|
'''Make sure that our examples produce useful output'''
|
|
os.chdir(SRC_ROOT)
|
|
expected = open(SRC_ROOT / 'tests' / 'invocation' / output, mode='r', encoding='utf-8').read()
|
|
handler(args)
|
|
captured = capfd.readouterr()
|
|
assert captured.out == expected
|
|
assert captured.err == ''
|
|
|
|
|
|
@pytest.mark.parametrize('program', ('gnpy-transmission-example', 'gnpy-path-request'))
|
|
def test_run_wrapper(program):
|
|
'''Ensure that our wrappers really, really work'''
|
|
proc = subprocess.run((program, '--help'), stdout=subprocess.PIPE, stderr=subprocess.PIPE,
|
|
check=True, universal_newlines=True)
|
|
assert proc.stderr == ''
|
|
assert 'https://github.com/telecominfraproject/oopt-gnpy' in proc.stdout.lower()
|
|
assert 'https://gnpy.readthedocs.io/' in proc.stdout.lower()
|
|
|
|
|
|
def test_conversion_xls():
|
|
proc = subprocess.run(
|
|
('gnpy-convert-xls', SRC_ROOT / 'tests' / 'data' / 'testTopology.xls', '--output', os.path.devnull),
|
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True, universal_newlines=True)
|
|
assert proc.stderr == ''
|
|
assert os.path.devnull in proc.stdout
|