Commit e8e7ee7f by Xavier Antoviaque

Tests - Factorize code to navigate to a given scenario, by name

parent 7178cc6a
...@@ -28,3 +28,13 @@ class MentoringBaseTest(SeleniumTest): ...@@ -28,3 +28,13 @@ class MentoringBaseTest(SeleniumTest):
header1 = self.browser.find_element_by_css_selector('h1') header1 = self.browser.find_element_by_css_selector('h1')
self.assertEqual(header1.text, 'XBlock scenarios') self.assertEqual(header1.text, 'XBlock scenarios')
def go_to_page(self, page_name):
"""
Navigate to the page `page_name`, as listed on the workbench home
Returns the mentoring DOM element on the visited page
"""
self.browser.get(self.live_server_url)
self.browser.find_element_by_link_text(page_name).click()
mentoring = self.browser.find_element_by_css_selector('div.mentoring')
return mentoring
...@@ -10,26 +10,17 @@ class AnswerBlockTest(MentoringBaseTest): ...@@ -10,26 +10,17 @@ class AnswerBlockTest(MentoringBaseTest):
def test_answer_edit(self): def test_answer_edit(self):
# Answer should initially be blank on all instances with the same answer name # Answer should initially be blank on all instances with the same answer name
link = self.browser.find_element_by_link_text('Answer Edit 2') mentoring = self.go_to_page('Answer Edit 2')
link.click()
mentoring = self.browser.find_element_by_css_selector('div.mentoring')
answer1_bis = mentoring.find_element_by_css_selector('.xblock textarea') answer1_bis = mentoring.find_element_by_css_selector('.xblock textarea')
answer1_readonly = mentoring.find_element_by_css_selector('blockquote.answer.read_only') answer1_readonly = mentoring.find_element_by_css_selector('blockquote.answer.read_only')
self.assertEqual(answer1_bis.get_attribute('value'), '') self.assertEqual(answer1_bis.get_attribute('value'), '')
self.assertEqual(answer1_readonly.text, '') self.assertEqual(answer1_readonly.text, '')
# Another answer with the same name # Another answer with the same name
self.browser.get(self.live_server_url) mentoring = self.go_to_page('Answer Edit 1')
link = self.browser.find_element_by_link_text('Answer Edit 1')
link.click()
header1 = self.browser.find_element_by_css_selector('h1') header1 = self.browser.find_element_by_css_selector('h1')
self.assertEqual(header1.text, 'XBlock: Answer Edit 1') self.assertEqual(header1.text, 'XBlock: Answer Edit 1')
# Mentoring block
vertical = self.browser.find_element_by_css_selector('div.vertical')
mentoring = vertical.find_element_by_css_selector('div.mentoring')
# Check <html> child # Check <html> child
p = mentoring.find_element_by_css_selector('div.xblock > p') p = mentoring.find_element_by_css_selector('div.xblock > p')
self.assertEqual(p.text, 'This should be displayed in the answer_edit scenario') self.assertEqual(p.text, 'This should be displayed in the answer_edit scenario')
...@@ -57,11 +48,7 @@ class AnswerBlockTest(MentoringBaseTest): ...@@ -57,11 +48,7 @@ class AnswerBlockTest(MentoringBaseTest):
self.assertTrue(progress.find_elements_by_css_selector('img')) self.assertTrue(progress.find_elements_by_css_selector('img'))
# Answer content should show on a different instance with the same name # Answer content should show on a different instance with the same name
self.browser.get(self.live_server_url) mentoring = self.go_to_page('Answer Edit 2')
link = self.browser.find_element_by_link_text('Answer Edit 2')
link.click()
mentoring = self.browser.find_element_by_css_selector('div.mentoring')
answer1_bis = mentoring.find_element_by_css_selector('.xblock textarea') answer1_bis = mentoring.find_element_by_css_selector('.xblock textarea')
answer1_readonly = mentoring.find_element_by_css_selector('blockquote.answer.read_only') answer1_readonly = mentoring.find_element_by_css_selector('blockquote.answer.read_only')
self.assertEqual(answer1_bis.get_attribute('value'), 'This is the answer') self.assertEqual(answer1_bis.get_attribute('value'), 'This is the answer')
......
...@@ -8,16 +8,6 @@ from mentoring.test_base import MentoringBaseTest ...@@ -8,16 +8,6 @@ from mentoring.test_base import MentoringBaseTest
class MentoringProgressionTest(MentoringBaseTest): class MentoringProgressionTest(MentoringBaseTest):
def go_to_page(self, page_name):
"""
Navigate to the page `page_name`, as listed on the workbench home
Returns the mentoring DOM element on the visited page
"""
self.browser.get(self.live_server_url)
self.browser.find_element_by_link_text(page_name).click()
mentoring = self.browser.find_element_by_css_selector('div.mentoring')
return mentoring
def assert_warning(self, warning_dom, link_href): def assert_warning(self, warning_dom, link_href):
""" """
Check that the provided DOM element is a progression warning, and includes a link with a href Check that the provided DOM element is a progression warning, and includes a link with a href
......
...@@ -11,14 +11,8 @@ from mentoring.test_base import MentoringBaseTest ...@@ -11,14 +11,8 @@ from mentoring.test_base import MentoringBaseTest
class QuizzBlockTest(MentoringBaseTest): class QuizzBlockTest(MentoringBaseTest):
def test_quizz_choices_rating(self): def test_quizz_choices_rating(self):
link = self.browser.find_element_by_link_text('Quizz 1')
link.click()
# Mentoring block
vertical = self.browser.find_element_by_css_selector('div.vertical')
mentoring = vertical.find_element_by_css_selector('div.mentoring')
# Initial quizzes status # Initial quizzes status
mentoring = self.go_to_page('Quizz 1')
quizz1 = mentoring.find_element_by_css_selector('fieldset.choices') quizz1 = mentoring.find_element_by_css_selector('fieldset.choices')
quizz2 = mentoring.find_element_by_css_selector('fieldset.rating') quizz2 = mentoring.find_element_by_css_selector('fieldset.rating')
messages = mentoring.find_element_by_css_selector('.messages') messages = mentoring.find_element_by_css_selector('.messages')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment