test_timeline.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from base import BaseTestCase, Timeline
  2. from parameterized import parameterized
  3. normal = [['jack'], ['elonmusk']]
  4. after = [['jack', '1681686036294803456'],
  5. ['elonmusk', '1681686036294803456']]
  6. no_more = [['mobile_test_8?cursor=DAABCgABF4YVAqN___kKAAICNn_4msIQAAgAAwAAAAIAAA']]
  7. empty = [['emptyuser'], ['mobile_test_10']]
  8. protected = [['mobile_test_7'], ['Empty_user']]
  9. photo_rail = [['mobile_test', ['Bo0nDsYIYAIjqVn', 'BoQbwJAIUAA0QCY', 'BoQbRQxIIAA3FWD', 'Bn8Qh8iIIAABXrG']]]
  10. class TweetTest(BaseTestCase):
  11. @parameterized.expand(normal)
  12. def test_timeline(self, username):
  13. self.open_nitter(username)
  14. self.assert_element_present(Timeline.older)
  15. self.assert_element_absent(Timeline.newest)
  16. self.assert_element_absent(Timeline.end)
  17. self.assert_element_absent(Timeline.none)
  18. @parameterized.expand(after)
  19. def test_after(self, username, cursor):
  20. self.open_nitter(f'{username}?cursor={cursor}')
  21. self.assert_element_present(Timeline.newest)
  22. self.assert_element_present(Timeline.older)
  23. self.assert_element_absent(Timeline.end)
  24. self.assert_element_absent(Timeline.none)
  25. @parameterized.expand(no_more)
  26. def test_no_more(self, username):
  27. self.open_nitter(username)
  28. self.assert_text('No more items', Timeline.end)
  29. self.assert_element_present(Timeline.newest)
  30. self.assert_element_absent(Timeline.older)
  31. @parameterized.expand(empty)
  32. def test_empty(self, username):
  33. self.open_nitter(username)
  34. self.assert_text('No items found', Timeline.none)
  35. self.assert_element_absent(Timeline.newest)
  36. self.assert_element_absent(Timeline.older)
  37. self.assert_element_absent(Timeline.end)
  38. @parameterized.expand(protected)
  39. def test_protected(self, username):
  40. self.open_nitter(username)
  41. self.assert_text('This account\'s tweets are protected.', Timeline.protected)
  42. self.assert_element_absent(Timeline.newest)
  43. self.assert_element_absent(Timeline.older)
  44. self.assert_element_absent(Timeline.end)
  45. #@parameterized.expand(photo_rail)
  46. #def test_photo_rail(self, username, images):
  47. #self.open_nitter(username)
  48. #self.assert_element_visible(Timeline.photo_rail)
  49. #for i, url in enumerate(images):
  50. #img = self.get_attribute(Timeline.photo_rail + f' a:nth-child({i + 1}) img', 'src')
  51. #self.assertIn(url, img)