読者です 読者をやめる 読者になる 読者になる

python-twitterでフレンドタイムラインを取得する2

doctest勉強用に書き直し。
テスト関連はまとめていきたい。

5.2.6.1 オプションフラグとディレクティブ
http://www.python.jp/doc/2.4/lib/doctest-options.html
本家ドキュメントより抜粋)

ELLIPSIS
このフラグを指定すると、予想出力中の省略記号マーカ (...) を実際の出力中の任意の部分文字列に一致させられます。部分文字列は 行境界にわたるものや空文字列を含みます。

doctest内に予測できない値が出力される場合に、使えます。
今回は、twitter.Api objectのアドレスはわからないため、ELLIPSISオプションを指定して、任意の部分文字列で処理できるようにしています。

"""
>>> u = 'tarou'
>>> p = 'yamada'
>>> api = login(u, p)
>>> api #doctest: +ELLIPSIS
<twitter.Api object ...>
>>> display_list = get_display_list(api)
>>> len(display_list) > 0
True
"""

import twitter

def login(user, user_password):
    """
    return Twitter Api Object
    """
    return twitter.Api(username=user, password=user_password)

def get_display_list(api):
    """
    return Display Strings list
    """
    ft = api.GetFriendsTimeline()

    display_list = []
    for f in ft:
        data = '%s: %s' % (f.user.screen_name, f.text)
        display_list.append(data)
    return display_list

def _test():
    import doctest
    doctest.testmod()

if __name__ == '__main__':
    _test()