Fix timezone formatting override for CI

Is it a bit hacky? Yes. Does it mean you can't run our test suite outside of Europe? Also yes. Do I care? Not a bit.
This commit is contained in:
2021-01-24 23:18:57 +00:00
parent 8c048b2f33
commit 7ccee4ca6e
3 changed files with 15 additions and 13 deletions

View File

@@ -29,7 +29,7 @@ DEBUG = env('DEBUG', cast=bool, default=True)
STAGING = env('STAGING', cast=bool, default=False) STAGING = env('STAGING', cast=bool, default=False)
CI = env('CI', cast=bool, default=True) CI = env('CI', cast=bool, default=False)
ALLOWED_HOSTS = ['pyrigs.nottinghamtec.co.uk', 'rigs.nottinghamtec.co.uk', 'pyrigs.herokuapp.com'] ALLOWED_HOSTS = ['pyrigs.nottinghamtec.co.uk', 'rigs.nottinghamtec.co.uk', 'pyrigs.herokuapp.com']

View File

@@ -1,6 +1,6 @@
from pypom import Region from pypom import Region
from django.utils import timezone from django.utils import timezone
import PyRIGS.settings from django.conf import settings
from selenium.webdriver.common.by import By from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions from selenium.webdriver.support import expected_conditions
from selenium.webdriver.remote.webelement import WebElement from selenium.webdriver.remote.webelement import WebElement
@@ -20,18 +20,21 @@ def parse_bool_from_string(string):
else: else:
return False return False
# 12-Hour vs 24-Hour Time. Affects widget display
def get_time_format(): def get_time_format():
# Default # Default
time_format = "%H:%M" time_format = "%H%M"
# If system is 12hr if settings.CI: # The CI is American
if timezone.now().strftime("%p") or settings.CI:
time_format = "%I%M%p" time_format = "%I%M%p"
return time_format return time_format
def get_date_format():
date_format = "%d%m%Y"
if settings.CI: # And try as I might I can't stop it being so
date_format = "%m%d%Y"
return date_format
class BootstrapSelectElement(Region): class BootstrapSelectElement(Region):
_main_button_locator = (By.CSS_SELECTOR, 'button.dropdown-toggle') _main_button_locator = (By.CSS_SELECTOR, 'button.dropdown-toggle')
_option_box_locator = (By.CSS_SELECTOR, 'ul.dropdown-menu') _option_box_locator = (By.CSS_SELECTOR, 'ul.dropdown-menu')
@@ -151,13 +154,13 @@ class DatePicker(Region):
def set_value(self, value): def set_value(self, value):
self.root.clear() self.root.clear()
self.root.send_keys(value.strftime("%d%m%Y")) self.root.send_keys(value.strftime(get_date_format()))
class TimePicker(Region): class TimePicker(Region):
@property @property
def value(self): def value(self):
return datetime.datetime.strptime(self.root.get_attribute("value"), get_time_format()) return datetime.datetime.strptime(self.root.get_attribute("value"), "%H:%M")
def set_value(self, value): def set_value(self, value):
self.root.clear() self.root.clear()
@@ -167,12 +170,12 @@ class TimePicker(Region):
class DateTimePicker(Region): class DateTimePicker(Region):
@property @property
def value(self): def value(self):
return datetime.datetime.strptime(self.root.get_attribute("value"), "%Y-%m-%d " + get_time_format()) return datetime.datetime.strptime(self.root.get_attribute("value"), "%Y-%m-%d %H:%M")
def set_value(self, value): def set_value(self, value):
self.root.clear() self.root.clear()
date = value.date().strftime("%d%m%Y") date = value.date().strftime(get_date_format())
time = value.time().strftime(get_time_format()) time = value.time().strftime(get_time_format())
self.root.send_keys(date) self.root.send_keys(date)

View File

@@ -136,8 +136,7 @@ class TestAssetForm(AutoLoginTest):
self.page.purchased_from_selector.set_option(self.supplier.name, True) self.page.purchased_from_selector.set_option(self.supplier.name, True)
self.page.purchase_price = "12.99" self.page.purchase_price = "12.99"
self.page.salvage_value = "99.12" self.page.salvage_value = "99.12"
acquired = datetime.date(2020, 5, 2) self.page.date_acquired = acquired = datetime.date(2020, 5, 2)
self.page.date_acquired = acquired
self.page.parent_selector.toggle() self.page.parent_selector.toggle()
self.assertTrue(self.page.parent_selector.is_open) self.assertTrue(self.page.parent_selector.is_open)