Add thread/conversation tests
This commit is contained in:
parent
b982259f1d
commit
baa734b32e
|
@ -28,6 +28,16 @@ class Timeline(object):
|
||||||
protected = '.timeline-protected'
|
protected = '.timeline-protected'
|
||||||
|
|
||||||
|
|
||||||
|
class Conversation(object):
|
||||||
|
main = '.main-tweet'
|
||||||
|
before = '.before-tweet'
|
||||||
|
after = '.after-tweet'
|
||||||
|
replies = '.replies'
|
||||||
|
thread = '.reply'
|
||||||
|
tweet = '.status-el'
|
||||||
|
tweet_text = '.status-content'
|
||||||
|
|
||||||
|
|
||||||
class Poll(object):
|
class Poll(object):
|
||||||
votes = '.poll-info'
|
votes = '.poll-info'
|
||||||
choice = '.poll-meter'
|
choice = '.poll-meter'
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
from base import BaseTestCase, Conversation
|
||||||
|
from parameterized import parameterized
|
||||||
|
|
||||||
|
thread = [
|
||||||
|
['octonion/status/975253897697611777', [], 'Based', ['Crystal', 'Julia'], [
|
||||||
|
['For', 'Then', 'Okay,', 'Python', 'Speed', 'Java', 'Coding', 'I', 'more'],
|
||||||
|
['yeah,']
|
||||||
|
]],
|
||||||
|
|
||||||
|
['octonion/status/975254452625002496', ['Based'], 'Crystal', ['Julia'], []],
|
||||||
|
|
||||||
|
['octonion/status/975256058384887808', ['Based', 'Crystal'], 'Julia', [], []],
|
||||||
|
|
||||||
|
['gauravssnl/status/975364889039417344',
|
||||||
|
['Based', 'For', 'Then', 'Okay,', 'Python'], 'Speed', [], [
|
||||||
|
['Java', 'more'], ['JAVA!']
|
||||||
|
]],
|
||||||
|
|
||||||
|
['d0m96/status/1141811379407425537', [], 'I\'m',
|
||||||
|
['The', 'The', 'Today', 'Some', 'If', 'There', 'Above'],
|
||||||
|
[['Thank', 'Also,', 'Awesome.', 'Thank']]],
|
||||||
|
|
||||||
|
['Nitrux_NX/status/1138643619550810112', [], '"The', [],
|
||||||
|
[['@bipin_joshi11', 'bc']]],
|
||||||
|
|
||||||
|
['gmpreussner/status/999766552546299904', [], 'A', [],
|
||||||
|
[['I'], ['I']]]
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class ThreadTest(BaseTestCase):
|
||||||
|
def find_tweets(self, selector):
|
||||||
|
return self.find_elements(f"{selector} {Conversation.tweet_text}")
|
||||||
|
|
||||||
|
def compare_first_word(self, tweets, selector):
|
||||||
|
if len(tweets) > 0:
|
||||||
|
self.assert_element_visible(selector)
|
||||||
|
for i, tweet in enumerate(self.find_tweets(selector)):
|
||||||
|
text = tweet.text.split(" ")[0]
|
||||||
|
self.assert_equal(tweets[i], text)
|
||||||
|
|
||||||
|
@parameterized.expand(thread)
|
||||||
|
def test_thread(self, tweet, before, main, after, replies):
|
||||||
|
self.open_nitter(tweet)
|
||||||
|
self.assert_element_visible(Conversation.main)
|
||||||
|
|
||||||
|
self.assert_text(main, Conversation.main)
|
||||||
|
self.assert_text(main, Conversation.main)
|
||||||
|
|
||||||
|
self.compare_first_word(before, Conversation.before)
|
||||||
|
self.compare_first_word(after, Conversation.after)
|
||||||
|
|
||||||
|
for i, reply in enumerate(self.find_elements(Conversation.thread)):
|
||||||
|
selector = Conversation.replies + f" > div:nth-child({i + 1})"
|
||||||
|
self.compare_first_word(replies[i], selector)
|
Loading…
Reference in New Issue