2015-10-05 106 views
1

我做了一個連接到twitter api的函數。 該函數返回一個twitter對象。我想創建一個測試函數來檢查返回的對象是否真的是一個Twitter對象。 所以這是我的函數:如何測試python中兩個對象是否相等?

def authenticate_twitter_api(): 
    """Make connection with twitters REST api""" 
    try: 
     logger.info('Starting Twitter Authentication') 
     twitter_api = twitter.Twitter(auth=twitter.OAuth(config.TWITTER_ACCESS_KEY, config.TWITTER_ACCESS_SECRET, 
                config.TWITTER_CONSUMER_KEY, config.TWITTER_CONSUMER_SECRET)) 
     print twitter_api 
     logger.info("Service has started") 
     return twitter_api 
    except: 
     logger.error("Authentication Error. Could not connect to twitter api service") 

當我運行這個函數返回的是:

<twitter.api.Twitter object at 0x7fc751783910> 

現在,我想創建一個測試功能,也許通過numpy.testing爲了檢查類型是一個對象。

numpy.testing.assert_equal(actual, desired, err_msg='') 

actual = type(authenticate_twitter_api()) 
desired =<class 'twitter.api.Twitter'> 

這就是問題所在。我無法將對象保存爲「所需」。

我該怎麼辦?

回答

2

您正在查找的所需對象是twitter.api.Twitter,只需將其導入並傳遞類assert_equal即可。

然而,這是更地道使用isinstance

from twitter.api import Twitter 

if isinstance(authenticate_twitter_api(), Twitter): 
    print("It was a Twitter object.") 
+0

完美工作。謝謝! –

2

類對象本身在Python。所以你可以像這樣分配你想要的變量:

import twitter 
# (...) 
desired = twitter.api.Twitter 
相關問題