test_thread.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from parameterized import parameterized
  2. from base import BaseTestCase, Conversation
  3. thread = [
  4. [
  5. "octonion/status/975253897697611777",
  6. [],
  7. "Based",
  8. ["Crystal", "Julia"],
  9. [["For", "Then"], ["yeah,"]],
  10. ],
  11. ["octonion/status/975254452625002496", ["Based"], "Crystal", ["Julia"], []],
  12. ["octonion/status/975256058384887808", ["Based", "Crystal"], "Julia", [], []],
  13. [
  14. "gauravssnl/status/975364889039417344",
  15. ["Based", "For", "Then", "Okay,", "Python"],
  16. "Speed",
  17. [],
  18. [["Java", "Coding", "I", "You"], ["JAVA!"]],
  19. ],
  20. [
  21. "d0m96/status/1141811379407425537",
  22. [],
  23. "I'm",
  24. ["The", "The", "Today", "Some", "If", "There", "Above"],
  25. [["Thank", "Also,"]],
  26. ],
  27. [
  28. "gmpreussner/status/999766552546299904",
  29. [],
  30. "A",
  31. [],
  32. [["I", "Especially"], ["I"]],
  33. ],
  34. ]
  35. class ThreadTest(BaseTestCase):
  36. def find_tweets(self, selector):
  37. return self.find_elements(f"{selector} {Conversation.tweet_text}")
  38. def compare_first_word(self, tweets, selector):
  39. if len(tweets) > 0:
  40. self.assert_element_visible(selector)
  41. for i, tweet in enumerate(self.find_tweets(selector)):
  42. text = tweet.text.split(" ")[0]
  43. self.assert_equal(tweets[i], text)
  44. @parameterized.expand(thread)
  45. def test_thread(self, tweet, before, main, after, replies):
  46. self.open_nitter(tweet)
  47. self.assert_element_visible(Conversation.main)
  48. self.assert_text(main, Conversation.main)
  49. self.assert_text(main, Conversation.main)
  50. self.compare_first_word(before, Conversation.before)
  51. self.compare_first_word(after, Conversation.after)
  52. for i, reply in enumerate(self.find_elements(Conversation.thread)):
  53. selector = Conversation.replies + f" > div:nth-child({i + 1})"
  54. self.compare_first_word(replies[i], selector)