Skip to content
This repository has been archived by the owner on Apr 8, 2020. It is now read-only.

Commit

Permalink
Use RocketChat API calls
Browse files Browse the repository at this point in the history
  • Loading branch information
polina-popova committed Feb 1, 2019
1 parent a9821f8 commit 40b77e3
Show file tree
Hide file tree
Showing 3 changed files with 214 additions and 192 deletions.
207 changes: 21 additions & 186 deletions base.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ def handle_env(self, name, lst):


class RocketChatTestCase(SplinterTestCase):
def __init__(self, addr, username, password, create_test_user=True,
def __init__(self, addr, username, password, create_test_user=False,
**kwargs):
SplinterTestCase.__init__(self, addr, **kwargs)

Expand All @@ -204,19 +204,20 @@ def __init__(self, addr, username, password, create_test_user=True,
self.schedule_pre_test_case('test_check_version')

if create_test_user:
self.schedule_pre_test_case('create_user')
self.schedule_setup('create_user')

self.username = username
self.password = password
self._rc_version = '0.70'

self.test_user_id = None
self.test_username = 'noname'
self.test_full_name = 'No Name'
self.test_email = 'noname@nodomain.com'
self.test_password = 'pass'

if create_test_user:
self.schedule_test_case('remove_user')
self.schedule_tear_down('remove_user')

def __del__(self):
self.browser.quit()
Expand Down Expand Up @@ -299,108 +300,17 @@ def does_email_exist(self, email):


def create_user(self):
does_username_exist = self.check_with_retries(
self.does_username_exist,
self.test_username,
expected_res=False
)
assert not does_username_exist

does_email_exist = self.check_with_retries(
self.does_email_exist,
self.test_email,
expected_res=False
)
assert not does_email_exist

options_btn = self.browser.find_by_css(
'.sidebar__toolbar-button.rc-tooltip.rc-tooltip--down.js-button'
)
options_btn.last.click()

administration_btn = self.browser.find_by_css('.rc-popover__item-text')
administration_btn.click()

users_btn = self.browser.driver.find_elements_by_css_selector(
'a.sidebar-item__link[aria-label="Users"]')

assert len(users_btn)

self.browser.driver.execute_script("arguments[0].click();",
users_btn[0])

add_user_btn = self.find_by_css('button[aria-label="Add User"]')

assert len(add_user_btn)

add_user_btn.click()

input_name_el = self.find_by_css('input#name')

assert len(input_name_el)

input_name_el.first.fill(self.test_full_name)

input_username_el = self.find_by_css('input#username')

assert len(input_username_el)

input_username_el.first.fill(self.test_username)

input_email_el = self.find_by_css('input#email')

assert len(input_email_el)

input_email_el.first.fill(self.test_email)

verified_btn = self.find_by_css('label.rc-switch__label')

assert len(verified_btn)

verified_btn.first.click()

input_password_el = self.find_by_css('input#password')

assert len(input_password_el)

input_password_el.first.fill(self.test_password)

verified_btn = self.find_by_css('label.rc-switch__label')

assert len(verified_btn)

verified_btn.last.click()

role_option = self.find_by_css('option[value="user"]')

assert len(role_option)

role_option.first.click()

add_role_btn = self.find_by_css('button#addRole')

assert len(add_role_btn)

add_role_btn.first.click()
response = self.rocket.users_register(
email=self.test_email,
name=self.test_full_name,
password=self.test_password,
username=self.test_username
).json()

# Do not send welcome email
welcome_ckbx = self.find_by_css('label[for="sendWelcomeEmail"]')
if not response['success']:
raise RocketChatAPIError(response['error'])

assert len(welcome_ckbx)

welcome_ckbx.first.click()

save_btn = self.find_by_css('.rc-button.rc-button--primary.save')

assert len(save_btn)

save_btn.first.click()

does_username_exist = self.check_with_retries(
self.does_username_exist,
self.test_username
)
assert does_username_exist
self.test_user_id = response['user']['_id']

def login(self, use_test_user=False):
self.browser.fill('emailOrUsername',
Expand Down Expand Up @@ -481,89 +391,14 @@ def _check_modal_window_visibility(self):
return not windows

def remove_user(self):
does_username_exist = self.check_with_retries(
self.does_username_exist,
self.test_username
)
assert does_username_exist

options_btn = self.browser.driver.find_elements_by_css_selector(
'.sidebar__toolbar-button.rc-tooltip.rc-tooltip--down.js-button')

assert len(options_btn)

self.browser.driver.execute_script('arguments[0].click();',
options_btn[-1])

administration_btn = self.browser.find_by_css('.rc-popover__item-text')
administration_btn.click()

users_btn = self.browser.driver.find_elements_by_css_selector(
'a.sidebar-item__link[aria-label="Users"]')

assert len(users_btn)

self.browser.driver.execute_script("arguments[0].click();",
users_btn[0])

selected_user = self.browser.find_by_xpath(
'//td[@class="border-component-color"][text()="{0}"]'.
format(self.test_username))

assert len(selected_user)

selected_user.first.click()

try:
delete_btn = self.find_by_xpath(
'//button[@class="js-action rc-user-info-action__item"]'
'[text()="Delete"]'
)

assert len(delete_btn)

except AssertionError:
more_btn = self.find_by_css(
'button.rc-tooltip.rc-room-actions__button.js-more'
'[aria-label="More"]'
)

assert len(more_btn)

more_btn.first.click()

delete_btn = self.find_by_xpath(
'//li[@class="rc-popover__item js-action"]'
'/span[text()="Delete"]'
)

assert len(delete_btn)

delete_btn.first.click()

confirm_btn = self.find_by_css('input[value="Yes, delete it!"]')

assert len(confirm_btn)

confirm_btn.first.click()

WebDriverWait(self.browser.driver, 10).until(
lambda _: self._check_modal_window_visibility())

close_btn = self.browser.driver.find_elements_by_css_selector(
'button[data-action="close"]')

assert len(close_btn)

self.browser.driver.execute_script('arguments[0].click();',
close_btn[0])

does_username_exist = self.check_with_retries(
self.does_username_exist,
self.test_username,
expected_res=False
)
assert not does_username_exist
if not self.test_user_id:
response = self.rocket.users_list().json()
self.test_user_id = [
i.get('_id', None) for i in response['users']
if i.get('username', None) == self.test_username
][0]

self.rocket.users_delete(user_id=self.test_user_id)

def send_message(self, message_text):
self.browser.fill('msg', message_text)
Expand Down
6 changes: 1 addition & 5 deletions happy_birthder_script_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,6 @@ def test_specifying_date_birth_by_admin(self):

def test_specifying_date_birth_by_new_user(self):
self.create_user()
close_btn = self.find_by_css('button[data-action="close"]')
assert len(close_btn)

close_btn.click()
self.logout()
self.login(use_test_user=True)
self._wait_reminder()
Expand Down Expand Up @@ -489,7 +485,7 @@ def main():
test_cases = HappyBirthderScriptTestCase(options.host, options.username,
options.password,
reminder_interval_time=options.wait,
create_test_user=False)
)
test_cases.run()


Expand Down
Loading

0 comments on commit 40b77e3

Please sign in to comment.