From cebff5adda169aa195fab10566600ff10e62e1a7 Mon Sep 17 00:00:00 2001 From: FreneticScribbler Date: Sun, 21 Feb 2021 00:22:51 +0000 Subject: [PATCH] When in doubt, sleep --- RIGS/tests/pages.py | 22 +++++++++++----------- RIGS/tests/test_interaction.py | 16 +++++++++++----- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/RIGS/tests/pages.py b/RIGS/tests/pages.py index 09caf135..02786e68 100644 --- a/RIGS/tests/pages.py +++ b/RIGS/tests/pages.py @@ -230,9 +230,11 @@ class CreateEventChecklist(FormPage): URL_TEMPLATE = 'event/{event_id}/checklist' _submit_locator = (By.XPATH, "//button[@type='submit' and contains(., 'Save')]") - _power_mic_selector = (By.XPATH, "//div[@id='id_power_mic-group']//div[contains(@class, 'bootstrap-select')]") + _power_mic_selector = (By.XPATH, "//div[select[@id='id_power_mic']]") _add_vehicle_locator = (By.XPATH, "//button[contains(., 'Vehicle')]") _add_crew_locator = (By.XPATH, "//button[contains(., 'Crew')]") + _vehicle_row_locator = ('xpath', "//tr[@id[starts-with(., 'vehicle') and not(contains(.,'new'))]]") + _crew_row_locator = ('xpath', "//tr[@id[starts-with(., 'crew') and not(contains(.,'new'))]]") form_items = { 'safe_parking': (regions.CheckBox, (By.ID, 'id_safe_parking')), @@ -271,16 +273,6 @@ class CreateEventChecklist(FormPage): def power_mic(self): return regions.BootstrapSelectElement(self, self.find_element(*self._power_mic_selector)) - @property - def success(self): - return '{event_id}' not in self.driver.current_url - - -class EditEventChecklist(CreateEventChecklist): - URL_TEMPLATE = '/event/checklist/{pk}/edit' - _vehicle_row_locator = ('xpath', "//tr[@id[starts-with(., 'vehicle') and not(contains(.,'new'))]]") - _crew_row_locator = ('xpath', "//tr[@id[starts-with(., 'crew') and not(contains(.,'new'))]]") - @property def vehicles(self): return [self.VehicleRow(self, el) for el in self.find_elements(*self._vehicle_row_locator)] @@ -323,6 +315,14 @@ class EditEventChecklist(CreateEventChecklist): def role(self): return regions.TextBox(self, self.root.find_element(*self._role_locator)) + @property + def success(self): + return '{event_id}' not in self.driver.current_url + + +class EditEventChecklist(CreateEventChecklist): + URL_TEMPLATE = '/event/checklist/{pk}/edit' + @property def success(self): return 'edit' not in self.driver.current_url diff --git a/RIGS/tests/test_interaction.py b/RIGS/tests/test_interaction.py index 8ca4f62b..3192ad12 100644 --- a/RIGS/tests/test_interaction.py +++ b/RIGS/tests/test_interaction.py @@ -16,6 +16,7 @@ from RIGS import models from RIGS.tests import regions from . import pages import pytest +import time as t pytestmark = pytest.mark.django_db(transaction=True) @@ -667,7 +668,7 @@ def test_ra_edit(logged_in_browser, live_server, ra): assert ra.nonstandard_equipment == nse -def small_ec(page): +def small_ec(page, admin_user): page.safe_parking = True page.safe_packing = True page.exits = True @@ -688,7 +689,7 @@ def small_ec(page): def test_ec_create_small(logged_in_browser, live_server, admin_user, ra): page = pages.CreateEventChecklist(logged_in_browser.driver, live_server.url, event_id=ra.event.pk).open() - small_ec(page) + small_ec(page, admin_user) page.submit() assert page.success @@ -733,12 +734,15 @@ def test_ec_create_medium(logged_in_browser, live_server, admin_user, medium_ra) def test_ec_create_vehicle(logged_in_browser, live_server, admin_user, checklist): page = pages.EditEventChecklist(logged_in_browser.driver, live_server.url, pk=checklist.pk).open() - small_ec(page) + small_ec(page, admin_user) page.add_vehicle() assert len(page.vehicles) == 1 vehicle_name = 'Brian' page.vehicles[0].name.set_value(vehicle_name) + # Appears we're moving too fast for javascript... + t.sleep(1) page.vehicles[0].vehicle.search(admin_user.first_name) + t.sleep(1) page.submit() assert page.success # Check data is correct @@ -750,17 +754,19 @@ def test_ec_create_vehicle(logged_in_browser, live_server, admin_user, checklist # TODO Test validation of end before start def test_ec_create_crew(logged_in_browser, live_server, admin_user, checklist): page = pages.EditEventChecklist(logged_in_browser.driver, live_server.url, pk=checklist.pk).open() - small_ec(page) + small_ec(page, admin_user) page.add_crew() assert len(page.crew) == 1 role = "MIC" start_time = timezone.make_aware(datetime.datetime(2015, 1, 1, 9, 0)) end_time = timezone.make_aware(datetime.datetime(2015, 1, 1, 10, 30)) crew = page.crew[0] + t.sleep(2) + crew.crewmember.search(admin_user.first_name) + t.sleep(2) crew.role.set_value(role) crew.start_time.set_value(start_time) crew.end_time.set_value(end_time) - crew.crewmember.search(admin_user.first_name) page.submit() assert page.success # Check data is correct