nitter/tests/base.py

65 lines
1.6 KiB
Python
Raw Normal View History

2019-06-28 02:56:02 +00:00
from seleniumbase import BaseCase
class Tweet(object):
def __init__(self, tweet=''):
2019-06-28 22:41:57 +00:00
namerow = tweet + 'div.media-heading '
2019-06-28 02:56:02 +00:00
self.fullname = namerow + '.fullname'
self.username = namerow + '.username'
2019-06-28 22:41:57 +00:00
self.date = tweet + 'div.media-heading .heading-right'
self.text = tweet + '.status-content-wrapper .status-content.media-body'
self.retweet = tweet = '.retweet'
2019-06-28 02:56:02 +00:00
class Profile(object):
fullname = '.profile-card-fullname'
username = '.profile-card-username'
protected = '.protected-icon'
verified = '.verified-icon'
2019-06-28 22:41:57 +00:00
banner = '.profile-banner'
bio = '.profile-bio'
2019-06-28 02:56:02 +00:00
2019-06-28 22:42:53 +00:00
class Timeline(object):
newest = 'div[class="show-more status-el"]'
older = 'div[class="show-more"]'
end = '.timeline-end'
none = '.timeline-none'
protected = '.timeline-protected'
2019-06-29 22:53:07 +00:00
class Poll(object):
votes = '.poll-info'
choice = '.poll-meter'
value = 'poll-choice-value'
option = 'poll-choice-option'
leader = 'leader'
2019-06-30 22:29:40 +00:00
class Media(object):
container = '.attachments'
row = '.gallery-row'
image = '.still-image'
video = '.gallery-video'
gif = '.gallery-gif'
2019-06-28 02:56:02 +00:00
class BaseTestCase(BaseCase):
def setUp(self):
super(BaseTestCase, self).setUp()
def tearDown(self):
super(BaseTestCase, self).tearDown()
def open_nitter(self, page=''):
self.open(f'http://localhost:5000/{page}')
def search_username(self, username):
self.open_nitter()
self.update_text('input', username)
self.submit('form')
def get_timeline_tweet(num=1):
2019-06-28 22:41:57 +00:00
return Tweet(f'#tweets > div:nth-child({num}) ')