파이썬으로 쉘 명령어 실행

sangyeon217·2021년 10월 31일
0

쉘(Shell)

목록 보기
2/2
post-thumbnail

쉘로 테스트 코드를 실행해야하는데, 그 쉘 명령어 내에서 파이썬으로 작성된 어떤 함수의 리턴 값을 이용해야 하는 경우 어떻게 해야하는지 알아봅니다.

파이썬 코드 작성

쉘로 실행해야하는 테스트 파일(test_example.py)은 아래와 같다고 가정합니다.

def test_1():
    assert True


def test_2():
    assert False


def test_3():
    assert True

위 테스트 코드를 pytest-xdist 플러그인을 사용하여 3개의 worker로 병렬 테스트 수행하려고 하는데, 이 3을 함수의 리턴값으로 받아 파이썬으로 쉘 명령어를 수행하는 것으로 상황을 가정해봅니다.
(해당 예시는 이런 복잡한 과정없이 그냥 쉘로 수행하면 되는 부분이지만, 단순한 예시로 설명하기 위해 가정해봅니다.)

3을 함수의 리턴값으로 받는 do_something 함수 입니다.

def do_something():
    return 3

이제 do_something 함수의 리턴값을 이용하여 파이썬으로 쉘 명령어를 수행하는 run_shell_command() 함수를 작성해봅니다.

import os

def run_shell_command():
    rtn_val = str(do_something())
    os.system(command='pytest test_example.py -n '+rtn_val)

실행 결과

위 코드 실행 시, 3개의 worker(gw0, gw1, gw2)로 병렬 테스트가 수행됩니다.

(pytest-xdist 플러그인에 대해 더 알고 싶으시다면, Pytest 플러그인 : pytest-xdist 포스팅을 참고해주세요.)

Epilogue

원래는 쉘 스크립트로 파이썬 코드 실행 후, $ 문자를 사용해서 변수에 함수 리턴값을 저장하여 다시 쉘로 실행을 해보려하다가 잘 안 되었는데, 위와 같이 파이썬 내에서 쉘 명령어를 실행하는 것으로 쉽게 해결할 수 있었습니다^^;

profile
I'm a constant learner. "Long Learn for Long Run!"

0개의 댓글