41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
|
from .utils import TEST_URL, assert_navbar, login_valid_user
|
||
|
|
||
|
URL = f'{TEST_URL}/login'
|
||
|
|
||
|
|
||
|
class TestLogin:
|
||
|
def test_navbar_contains_login(self, selenium):
|
||
|
selenium.get(URL)
|
||
|
|
||
|
nav = selenium.find_element_by_tag_name('nav').text
|
||
|
assert 'Login' in nav
|
||
|
|
||
|
def test_h1_contains_login(self, selenium):
|
||
|
selenium.get(URL)
|
||
|
|
||
|
title = selenium.find_element_by_tag_name('h1').text
|
||
|
assert 'Login' in title
|
||
|
|
||
|
def test_it_displays_login_form(self, selenium):
|
||
|
selenium.get(URL)
|
||
|
|
||
|
inputs = selenium.find_elements_by_tag_name('input')
|
||
|
assert len(inputs) == 3
|
||
|
assert inputs[0].get_attribute('name') == 'email'
|
||
|
assert inputs[0].get_attribute('type') == 'email'
|
||
|
assert inputs[1].get_attribute('name') == 'password'
|
||
|
assert inputs[1].get_attribute('type') == 'password'
|
||
|
assert inputs[2].get_attribute('name') == ''
|
||
|
assert inputs[2].get_attribute('type') == 'submit'
|
||
|
|
||
|
def test_user_can_log_in(self, selenium):
|
||
|
user = {
|
||
|
'username': 'admin',
|
||
|
'email': 'admin@example.com',
|
||
|
'password': 'mpwoadmin',
|
||
|
}
|
||
|
|
||
|
login_valid_user(selenium, user)
|
||
|
|
||
|
assert_navbar(selenium, user)
|