Browse Source

Get the timezone offset for the current day instead of January 1st.

This bug only appears to be a cosmetic one where the TZ offset
would be calculated on current_year/01/01 so would remain in
daylight saving offset when displaying the timezones list.

(Note by amotoki)
The minimum version of Babel is bumped to 2.6.0
as Babel 2.3.4 returns "New Zealand Time" instead of "New Zealand
(Auckland) Time" returned from the latest Babel (2.9.0).
It is not a good idea to handle such difference in Babel in our UT
and there is no reason to stick to Bump 2.3.4.
2.6.0 was chosen as it is available in Ubuntu Focal and there is
no more reason than this.

Change-Id: I0600086cc51cf5abcf1631565e75146114189667
Closes-bug: #1822849
changes/79/649379/19
David Hill 3 years ago
committed by Akihiro Motoki
parent
commit
f60220329a
  1. 5
      lower-constraints.txt
  2. 3
      openstack_dashboard/dashboards/settings/user/forms.py
  3. 13
      openstack_dashboard/dashboards/settings/user/tests.py
  4. 8
      releasenotes/notes/bug-1822849-2833b5e6a5d021b7.yaml
  5. 2
      requirements.txt
  6. 1
      test-requirements.txt

5
lower-constraints.txt

@ -2,7 +2,7 @@ alabaster==0.7.10
amqp==2.1.1
appdirs==1.4.0
asn1crypto==0.23.0
Babel==2.3.4
Babel==2.6.0
bandit==1.4.0
cachetools==2.0.0
cffi==1.14.0
@ -29,6 +29,7 @@ eventlet==0.18.2
extras==1.0.0
fasteners==0.7.0
fixtures==3.0.0
freezegun==0.3.15
futurist==1.2.0
greenlet==0.4.10
idna==2.6
@ -89,7 +90,7 @@ pytest==5.3.5
pytest-django==3.8.0
pytest-html==2.0.1
python-cinderclient==5.0.0
python-dateutil==2.5.3
python-dateutil==2.8.1
python-glanceclient==2.8.0
python-keystoneclient==3.22.0
python-memcached==1.59

3
openstack_dashboard/dashboards/settings/user/forms.py

@ -42,7 +42,8 @@ class UserSettingsForm(forms.SelfHandlingForm):
@staticmethod
def _sorted_zones():
d = datetime(datetime.today().year, 1, 1)
today = datetime.today()
d = datetime(today.year, today.month, today.day)
zones = [(tz, pytz.timezone(tz).localize(d).strftime('%z'))
for tz in pytz.common_timezones]
zones.sort(key=lambda zone: int(zone[1]))

13
openstack_dashboard/dashboards/settings/user/tests.py

@ -13,6 +13,7 @@
# under the License.
from django.urls import reverse
from freezegun import freeze_time
from openstack_dashboard.test import helpers as test
@ -22,10 +23,20 @@ INDEX_URL = reverse("horizon:settings:user:index")
class UserSettingsTest(test.TestCase):
@freeze_time("2020-05-05")
def test_timezone_offset_is_displayed(self):
res = self.client.get(INDEX_URL)
self.assertContains(res, "UTC +11:00: Australia (Melbourne) Time")
print(res.content)
self.assertContains(res, "UTC +12:00: New Zealand (Auckland) Time")
self.assertContains(res, "UTC -03:00: Falkland Islands Time")
self.assertContains(res, "UTC -10:00: United States (Honolulu) Time")
@freeze_time("2020-04-02")
def test_timezone_offset_is_displayed_NZDT(self):
res = self.client.get(INDEX_URL)
# self.assertContains(res, "UTC +13:00: New Zealand (Auckland) Time")
self.assertContains(res, "UTC -03:00: Falkland Islands Time")
self.assertContains(res, "UTC -10:00: United States (Honolulu) Time")

8
releasenotes/notes/bug-1822849-2833b5e6a5d021b7.yaml

@ -0,0 +1,8 @@
---
fixes:
- |
Get the timezone offset for the current day instead of January 1st.
This bug only appears to be a cosmetic one where the TZ offset
would be calculated on current_year/01/01 so would remain in
daylight saving offset when displaying the timezones list in the
user configuration settings.

2
requirements.txt

@ -10,7 +10,7 @@
pbr!=2.1.0,>=2.0.0 # Apache-2.0
# Horizon Core Requirements
Babel!=2.4.0,>=2.3.4 # BSD
Babel>=2.6.0 # BSD
debtcollector>=1.2.0 # Apache-2.0
Django>=2.2,<3.0 # BSD
django-compressor>=2.0 # MIT

1
test-requirements.txt

@ -12,6 +12,7 @@ hacking>=3.0.1,<3.1.0 # Apache-2.0
bandit!=1.6.0,>=1.4.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
flake8-import-order==0.12 # LGPLv3
freezegun>=0.3.15 # Apache-2.0
nodeenv>=0.9.4 # BSD
pytest>=5.3.5 # MIT
pytest-django>=3.8.0 # BSD (3 clause)

Loading…
Cancel
Save