test_parser.py 859 B

1234567891011121314151617181920212223242526272829
  1. import pytest
  2. from twhatter.parser import TweetList, Tweet
  3. class TestTweetList:
  4. def test_len(self, raw_html_user_initial_page):
  5. t_list = TweetList(raw_html_user_initial_page)
  6. assert len(t_list) == 20
  7. def test_iter(self, raw_html_user_initial_page):
  8. t_list = TweetList(raw_html_user_initial_page)
  9. for t in t_list:
  10. assert isinstance(t, Tweet)
  11. class TestTweet:
  12. @pytest.mark.parametrize("tweet_type", [
  13. "plain",
  14. "reaction_tweet",
  15. "with_link",
  16. ])
  17. def test_plain_tweet(self, raw_tweet_factory, tweet_collection, tweet_type):
  18. tweet_info = tweet_collection[tweet_type]
  19. raw = raw_tweet_factory(tweet_info)
  20. t = Tweet.extract(raw)
  21. assert t
  22. for field, value in tweet_info._asdict().items():
  23. assert getattr(t, field) == value