test_thread.py 1.9 KB

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