@@ -66,12 +66,6 @@ def test_has_login_link(driver_home):
66
66
pytest .fail ('Should have a link called Login' )
67
67
68
68
69
- def _get_number_books_read (driver ):
70
- driver .find_element_by_link_text (MY_BOOKS ).click ()
71
- stats = driver .find_element_by_class_name ('mui--text-subhead' )
72
- return int (re .sub (r'Status: (\d+) books.*' , r'\1' , stats .text ))
73
-
74
-
75
69
def test_book_page_title (driver_first_book ):
76
70
expected = ("PyBites My Reading List | The Hitchhiker's "
77
71
"Guide to Python" )
@@ -105,54 +99,58 @@ def test_search_box_auto_direct(driver_first_book):
105
99
106
100
107
101
def test_login_to_site (driver_login ):
108
- # logged in links
109
102
try :
110
- driver_login .find_element_by_link_text ('5-Hour Challenge' )
111
103
driver_login .find_element_by_link_text ('Logout' )
112
104
driver_login .find_element_by_link_text (MY_BOOKS )
105
+ driver_login .find_element_by_link_text ('5-Hour Challenge' )
113
106
except NoSuchElementException :
114
107
pytest .fail ('Missing private links in navbar' )
115
108
116
109
try :
117
110
driver_login .find_element_by_link_text ('Login' )
118
- pytest .fail ('Should not have a Login link when logged in' )
111
+ pytest .fail ('Should not have a link called Login when logged in' )
119
112
except NoSuchElementException :
120
113
pass
121
114
122
115
116
+ def _get_number_books_read (driver ):
117
+ driver .find_element_by_link_text (MY_BOOKS ).click ()
118
+ stats = driver .find_element_by_class_name ('mui--text-subhead' )
119
+ return int (re .sub (r'Status: (\d+) books.*' , r'\1' , stats .text ))
120
+
121
+
123
122
def test_add_delete_book (driver_login ):
124
123
num_books_read_start = _get_number_books_read (driver_login )
125
124
126
- # adding a book should increase book counter by 1
125
+ # adding a book should increase the book counter by 1
127
126
driver_login .get (SECOND_BOOK )
128
127
driver_login .find_element_by_name ('bookSubmit' ).click ()
129
- driver_login .find_element_by_link_text (MY_BOOKS ).click ()
130
- num_books_read_after_add = _get_number_books_read (driver_login )
131
- assert num_books_read_after_add == num_books_read_start + 1
128
+ num_books_after_add = _get_number_books_read (driver_login )
129
+ assert num_books_after_add == num_books_read_start + 1
132
130
133
- # deleting the book should bring counter back to initial count
131
+ # deleting the book should bring the counter back to the initial count
134
132
driver_login .get (SECOND_BOOK )
135
133
driver_login .find_element_by_name ('deleteBook' ).click ()
136
- num_books_read_after_delete = _get_number_books_read (driver_login )
137
- assert num_books_read_after_delete == num_books_read_start
134
+ num_books_after_delete = _get_number_books_read (driver_login )
135
+ assert num_books_after_delete == num_books_read_start
138
136
139
137
140
138
def test_logout (driver_login ):
141
139
driver_login .find_element_by_link_text ('Logout' ).click ()
142
140
143
141
src = driver_login .page_source
144
- assert ' Logged out' in src
142
+ assert " Logged out" in src
145
143
146
144
# logged out links
147
145
try :
148
146
driver_login .find_element_by_link_text ('Login' )
149
147
except NoSuchElementException :
150
- pytest .fail ('Should see Login link in navbar' )
148
+ pytest .fail ('Should see Login link in navbar when logged out ' )
151
149
152
150
try :
153
- driver_login .find_element_by_link_text ('5-Hour Challenge' )
154
151
driver_login .find_element_by_link_text ('Logout' )
155
152
driver_login .find_element_by_link_text (MY_BOOKS )
156
- pytest .fail ('Should not private links in navbar when logged out' )
153
+ driver_login .find_element_by_link_text ('5-Hour Challenge' )
154
+ pytest .fail ('Should not show private links when logged out' )
157
155
except NoSuchElementException :
158
156
pass
0 commit comments