2013-08-07 9 views
7

Pythonの単体テストライブラリ(特に3.x、私は2.xは本当に気にしません)は、ルートユーザーのみがアクセスできるデコレータを持っていますか?Pythonのrootユーザーのみの単体テスト

私はこのテスト機能を持っています。

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

blabla関数はrootでしか実行できません。私は、rootユーザーがだけなので、通常のユーザーは、このテストをスキップしますデコレータたい:

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

なデコレータは存在していますか?私は@ support.cpython_onlyデコレータを持っています。

答えて

6

unittestを使用している場合は、unittest.skipIfと​​を使用してテストまたはテストケース全体をスキップできます。

ここ

、あなたが行うことができます:(読みにくく)に単純化することができ

import os 

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

@unittest.skipIf(os.getuid()) 
関連する問題