2013-08-07 2 views
7

파이썬 용 단위 테스트 라이브러리 (특히 3.x, 나는 2.x에 대해별로 신경 쓰지 않는다)는 루트 사용자 만 액세스 할 수있는 데코레이터가 있습니까?파이썬에서 루트 사용자 만위한 단위 테스트

이 테스트 기능이 있습니다.

def test_blabla_as_root(): 
    self.assertEqual(blabla(), 1) 

blabla 기능은 루트에서만 실행할 수 있습니다. 나는 루트 사용자에게만 데코레이터를 원하기 때문에 일반 사용자는이 테스트를 건너 뛸 것입니다.

@support.root_only 
def test_blabla_as_root(): 
    self.assertEqual(blabla(), 1) 

그런 장식 자도 존재합니까? 우리는 @ support.cpython_only 데코레이터를 가지고있다.

답변

6

unittest를 사용하는 경우 unittest.skipIfunittest.skipUnless을 사용하여 테스트 또는 전체 테스트 사례를 건너 뛸 수 있습니다.

다음

, 당신은 할 수있다 : A (덜 읽을 수)에서 간단하게 할 수

import os 

@unittest.skipUnless(os.getuid() == 0) # Root has an uid of 0 
def test_bla_as_root(self): 
    ... 

:

@unittest.skipIf(os.getuid())