我做了一个连接到twitter api的函数。这个函数返回一个twitter对象。我想创建一个测试函数来检查返回的对象是否真的是一个twitter对象。这是我的函数:
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。用于检查类型是否为对象的测试。
numpy.testing.assert_equal(actual, desired, err_msg='')
actual = type(authenticate_twitter_api())
desired =<class 'twitter.api.Twitter'>
问题就在这里。我不能保存一个对象到'desired'.
您正在寻找的理想对象是twitter.api.Twitter
,只需导入它并将assert_equal传递给类。
但是,更习惯地使用isinstance
:
from twitter.api import Twitter
if isinstance(authenticate_twitter_api(), Twitter):
print("It was a Twitter object.")
类在Python中本身就是对象。所以你可以像这样分配你想要的变量:
import twitter
# (...)
desired = twitter.api.Twitter