Add unit test for execute_cmd in repo2docker.utils

pull/494/head
yuvipanda 2018-12-10 23:06:07 -08:00
rodzic b61e37474b
commit 30e69bccee
2 zmienionych plików z 40 dodań i 1 usunięć

Wyświetl plik

@ -10,7 +10,9 @@ from traitlets import Integer, TraitError
def execute_cmd(cmd, capture=False, **kwargs):
"""
Call given command, yielding output line by line if capture=True
Call given command, yielding output line by line if capture=True.
Must be yielded from.
"""
if capture:
kwargs['stdout'] = subprocess.PIPE

Wyświetl plik

@ -0,0 +1,37 @@
"""
Tests for repo2docker/utils.py
"""
from repo2docker import utils
import pytest
import subprocess
def test_capture_cmd_no_capture_success():
# This should succeed
for line in utils.execute_cmd([
'/bin/bash', '-c', 'echo test'
]):
pass
def test_capture_cmd_no_capture_fail():
with pytest.raises(subprocess.CalledProcessError):
for line in utils.execute_cmd([
'/bin/bash', '-c', 'e '
]):
pass
def test_capture_cmd_capture_success():
# This should succeed
for line in utils.execute_cmd([
'/bin/bash', '-c', 'echo test'
], capture=True):
assert line == 'test\n'
def test_capture_cmd_capture_fail():
with pytest.raises(subprocess.CalledProcessError):
for line in utils.execute_cmd([
'/bin/bash', '-c', 'echo test; exit 1 '
], capture=True):
assert line == 'test\n'