32 lines
728 B
Python
32 lines
728 B
Python
"""Test example scripts."""
|
|
|
|
from __future__ import print_function
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
import pytest
|
|
|
|
from tests import PROJECT_ROOT
|
|
|
|
|
|
@pytest.mark.parametrize('filename', map('example{0}.py'.format, (1, 2, 3)))
|
|
def test(filename):
|
|
"""Test with subprocess.
|
|
|
|
:param str filename: Example script filename to run.
|
|
"""
|
|
command = [sys.executable, str(PROJECT_ROOT.join(filename))]
|
|
env = dict(os.environ, PYTHONIOENCODING='utf-8')
|
|
|
|
# Run.
|
|
proc = subprocess.Popen(command, env=env, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
|
|
output = proc.communicate()[0]
|
|
|
|
# Verify.
|
|
try:
|
|
assert proc.poll() == 0
|
|
except AssertionError:
|
|
print(output)
|
|
raise
|