emancipated hardcoded form views & html from base.html, apps.dashboard.views, apps.dashboard.tests.test_views; added get_item_input_box() helper method to functional_tests.base & retrofitted the other FTs to utilize it

This commit is contained in:
Disco DeDisco
2026-01-20 15:14:05 -05:00
parent 93cc6632c4
commit 1d96871d7b
7 changed files with 59 additions and 54 deletions

View File

@@ -40,3 +40,6 @@ class FunctionalTest(StaticLiveServerTestCase):
if time.time() - start_time > MAX_WAIT:
raise
time.sleep(0.5)
def get_item_input_box(self):
return self.browser.find_element(By.ID, "id-text")

View File

@@ -10,7 +10,7 @@ class LayoutAndStylingTest(FunctionalTest):
self.browser.set_window_size(1024, 768)
# print("Viewport width:", self.browser.execute_script("return window.innerWidth"))
inputbox = self.browser.find_element(By.ID, 'id-new-item')
inputbox = self.get_item_input_box()
self.assertAlmostEqual(
inputbox.location['x'] + inputbox.size['width'] / 2,
512,
@@ -20,7 +20,7 @@ class LayoutAndStylingTest(FunctionalTest):
inputbox.send_keys('testing')
inputbox.send_keys(Keys.ENTER)
self.wait_for_row_in_list_table('1. testing')
inputbox = self.browser.find_element(By.ID, 'id-new-item')
inputbox = self.get_item_input_box()
self.assertAlmostEqual(
inputbox.location['x'] + inputbox.size['width'] / 2,
512,

View File

@@ -6,7 +6,7 @@ from .base import FunctionalTest
class ItemValidationTest(FunctionalTest):
def test_cannot_add_empty_list_items(self):
self.browser.get(self.live_server_url)
self.browser.find_element(By.ID, "id-new-item").send_keys(Keys.ENTER)
self.get_item_input_box().send_keys(Keys.ENTER)
self.wait_for(
lambda: self.assertEqual(
@@ -15,12 +15,12 @@ class ItemValidationTest(FunctionalTest):
)
)
self.browser.find_element(By.ID, "id-new-item").send_keys("Purchase milk")
self.browser.find_element(By.ID, "id-new-item").send_keys(Keys.ENTER)
self.get_item_input_box().send_keys("Purchase milk")
self.get_item_input_box().send_keys(Keys.ENTER)
self.wait_for_row_in_list_table("1. Purchase milk")
self.browser.find_element(By.ID, "id-new-item").send_keys(Keys.ENTER)
self.get_item_input_box().send_keys(Keys.ENTER)
self.wait_for(
lambda: self.assertEqual(
@@ -29,6 +29,6 @@ class ItemValidationTest(FunctionalTest):
)
)
self.browser.find_element(By.ID, 'id-new-item').send_keys("Make tea")
self.browser.find_element(By.ID, "id-new-item").send_keys(Keys.ENTER)
self.get_item_input_box().send_keys("Make tea")
self.get_item_input_box().send_keys(Keys.ENTER)
self.wait_for_row_in_list_table("2. Make tea")

View File

@@ -14,7 +14,7 @@ class NewVisitorTest(FunctionalTest):
header_text = self.browser.find_element(By.TAG_NAME, 'h1').text
self.assertIn('Dashboard', header_text)
inputbox = self.browser.find_element(By.ID, 'id-new-item')
inputbox = self.get_item_input_box()
self.assertEqual(inputbox.get_attribute('placeholder'), 'Enter a to-do item')
inputbox.send_keys('Buy peacock feathers')
@@ -22,7 +22,7 @@ class NewVisitorTest(FunctionalTest):
inputbox.send_keys(Keys.ENTER)
self.wait_for_row_in_list_table('1. Buy peacock feathers')
inputbox = self.browser.find_element(By.ID, 'id-new-item')
inputbox = self.get_item_input_box()
inputbox.send_keys('Use peacock feathers to make a fly')
inputbox.send_keys(Keys.ENTER)
@@ -31,7 +31,7 @@ class NewVisitorTest(FunctionalTest):
def test_multiple_users_can_start_lists_at_different_urls(self):
self.browser.get(self.live_server_url)
inputbox = self.browser.find_element(By.ID, 'id-new-item')
inputbox = self.get_item_input_box()
inputbox.send_keys('Buy peacock feathers')
inputbox.send_keys(Keys.ENTER)
self.wait_for_row_in_list_table('1. Buy peacock feathers')
@@ -45,7 +45,7 @@ class NewVisitorTest(FunctionalTest):
page_text = self.browser.find_element(By.TAG_NAME, 'body').text
self.assertNotIn('Buy peacock feathers', page_text)
inputbox = self.browser.find_element(By.ID, 'id-new-item')
inputbox = self.get_item_input_box()
inputbox.send_keys('Buy milk')
inputbox.send_keys(Keys.ENTER)
self.wait_for_row_in_list_table('1. Buy milk')