2015-12-08 33 views
0

我正在對使用遠程API的pypi分佈式軟件包進行更新。我想爲該API編寫一些測試。正確的'pythonic'和'setuptools'編寫單元測試的方式_require_ authentication

我正在計劃模擬一些unittests的連接併爲其他人產生錯誤,但一些測試確實應該通過實際的API,這顯然需要用戶名和密碼。

是否可以通過CLI或控制檯輸入從命令行收集這些數據,如果不這樣做,我只是在做setuptools單元測試時跳過測試?在Google上搜索了一下之後,我還沒有得到明確的答案。

+0

像VCR的東西可能會有所幫助:https://github.com/kevin1024/vcrpy –

回答

1

考慮使用具有缺省值的環境變量,該缺省值引發異常或者指示測試失敗。

import os 
import unittest 

class TestSomething(unittest.TestCase): 
    def setUp(self): 
     self.username = os.environ.get('API_USERNAME', None) 
     self.password = os.environ.get('API_PASSWORD', None) 

    def test_real_api(self): 
     if self.username is None or self.password is None: 
      raise Exception('API credentials required for this test!') 

環境變量,無論你決定運行測試易於確定,而命令行參數和交互控制檯輸入可能需要像插件和播放持續集成系統的東西更多的努力。

+0

我在想,可以使用該函數的setuptools實用程序指定CLI選項。 – SkyLeach

相關問題