Skip to content

Commit

Permalink
Remove column fetch_offset_timezone (fixes #507)
Browse files Browse the repository at this point in the history
  • Loading branch information
Shrhawk authored and aptiko committed Sep 16, 2023
1 parent 86c46c0 commit 9211d7f
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 54 deletions.
12 changes: 1 addition & 11 deletions doc/dev/telemetry.rst
Original file line number Diff line number Diff line change
Expand Up @@ -75,16 +75,7 @@ Models
is 125, then data will be fetched every day at 02:05 in the
morning. Generally
:attr:`~enhydris.telemetry.models.Telemetry.fetch_offset_minutes`
counts from midnight.

.. attribute:: fetch_offset_timezone
:type: CharField

The time zone to which
:attr:`~enhydris.telemetry.models.Telemetry.fetch_offset_minutes`
refers; a `tz database name`_ such as ``Europe/Athens``.

.. _tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
counts from midnight UTC.

.. attribute:: device_locator
:type: string
Expand Down Expand Up @@ -125,7 +116,6 @@ Models
:const:`True` if according to
:attr:`~enhydris.telemetry.models.Telemetry.fetch_interval_minutes`,
:attr:`~enhydris.telemetry.models.Telemetry.fetch_offset_minutes`,
:attr:`~enhydris.telemetry.models.Telemetry.fetch_offset_timezone`
and the current system time it's time to fetch data.

.. method:: fetch() -> None
Expand Down
1 change: 0 additions & 1 deletion enhydris/telemetry/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ class Meta:
"data_timezone",
"fetch_interval_minutes",
"fetch_offset_minutes",
"fetch_offset_timezone",
]

def __init__(self, *args, **kwargs):
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Generated by Django 3.2.19 on 2023-08-30 18:35

from django.db import migrations


class Migration(migrations.Migration):
dependencies = [
("telemetry", "0007_alter_telemetry_data_timezone"),
]

operations = [
migrations.RemoveField(
model_name="telemetry",
name="fetch_offset_timezone",
),
]
8 changes: 1 addition & 7 deletions enhydris/telemetry/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,6 @@ class Telemetry(models.Model):
"The offset generally counts from midnight."
),
)
fetch_offset_timezone = models.CharField(
max_length=35,
choices=timezone_choices,
verbose_name=_("Time zone for the fetch time offset"),
help_text=_("The time zone to which the fetch time offset refers."),
)
device_locator = models.CharField(max_length=200, blank=True)
username = models.CharField(max_length=200, blank=True)
password = models.CharField(max_length=200, blank=True)
Expand All @@ -79,7 +73,7 @@ class Telemetry(models.Model):

@property
def is_due(self):
now = dt.datetime.now(tz=zoneinfo.ZoneInfo(self.fetch_offset_timezone))
now = dt.datetime.now(tz=dt.timezone.utc)
current_offset = now.minute + now.hour * 60
return current_offset % self.fetch_interval_minutes == self.fetch_offset_minutes

Expand Down
7 changes: 2 additions & 5 deletions enhydris/telemetry/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ def setUpClass(cls):
type="meteoview2",
fetch_interval_minutes=10,
fetch_offset_minutes=10,
fetch_offset_timezone="Europe/Athens",
additional_config="{}",
)

Expand Down Expand Up @@ -76,7 +75,6 @@ def setUpClass(cls):
type="meteoview2",
fetch_interval_minutes=10,
fetch_offset_minutes=10,
fetch_offset_timezone="Europe/Athens",
additional_config="{}",
)

Expand All @@ -85,11 +83,11 @@ def _check(self, fetch_interval_minutes, fetch_offset_minutes, expected_result):
self.telemetry.fetch_offset_minutes = fetch_offset_minutes
self.assertEqual(self.telemetry.is_due, expected_result)

@freeze_time("2021-11-30 02:05", tz_offset=0)
@freeze_time("2021-11-30 00:05", tz_offset=0)
def test_not_due(self):
self._check(1440, 125, False)

@freeze_time("2021-11-30 00:05", tz_offset=0)
@freeze_time("2021-11-30 02:05", tz_offset=0)
def test_is_due_1(self):
self._check(1440, 125, True)

Expand Down Expand Up @@ -131,7 +129,6 @@ def setUpTestData(cls):
data_timezone="Europe/Athens",
fetch_interval_minutes=10,
fetch_offset_minutes=2,
fetch_offset_timezone="Asia/Vladivostok",
username="someemail@email.com",
password="topsecret",
remote_station_id="42a",
Expand Down
29 changes: 0 additions & 29 deletions enhydris/telemetry/tests/test_views/test_telemetry_wizard_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ def test_no_redirects(self):
"data_timezone": "Europe/Athens",
"fetch_interval_minutes": "10",
"fetch_offset_minutes": "2",
"fetch_offset_timezone": "Europe/Kiev",
},
)
response = self.client.get(f"/stations/{self.station.id}/telemetry/2/")
Expand Down Expand Up @@ -83,12 +82,6 @@ def test_default_fetch_offset_minutes_is_empty(self):
fetch_offset_minutes = self.soup.find(id="id_fetch_offset_minutes")
self.assertIsNone(fetch_offset_minutes.get("value"))

def test_default_fetch_offset_timezone_is_empty(self):
option_empty = self.soup.find(id="id_fetch_offset_timezone").find(
"option", value=""
)
self.assertEqual(option_empty.get("selected"), "")


@override_settings(ENHYDRIS_USERS_CAN_ADD_CONTENT=True)
class CopyTelemetryDataFromDatabaseToSessionWithExistingTelemetryTestCase(TestCase):
Expand All @@ -103,7 +96,6 @@ def setUpTestData(cls):
data_timezone="Europe/Athens",
fetch_interval_minutes=10,
fetch_offset_minutes=2,
fetch_offset_timezone="Asia/Vladivostok",
additional_config="{}",
)

Expand Down Expand Up @@ -146,26 +138,13 @@ def test_default_fetch_offset_minutes_is_2(self):
fetch_offset_minutes = self.soup.find(id="id_fetch_offset_minutes")
self.assertEqual(fetch_offset_minutes["value"], "2")

def test_empty_fetch_offset_timezone_is_not_selected(self):
option_empty = self.soup.find(id="id_fetch_offset_timezone").find(
"option", value=""
)
self.assertIsNone(option_empty.get("selected"))

def test_default_fetch_offset_timezone_is_meteoview2(self):
option_asia_vladivostok = self.soup.find(id="id_fetch_offset_timezone").find(
"option", value="Asia/Vladivostok"
)
self.assertEqual(option_asia_vladivostok.get("selected"), "")

def test_configuration_is_in_the_session(self):
itemkey = f"telemetry_{self.station.id}"
expected = {
"type": "meteoview2",
"data_timezone": "Europe/Athens",
"fetch_interval_minutes": 10,
"fetch_offset_minutes": 2,
"fetch_offset_timezone": "Asia/Vladivostok",
"additional_config": "{}",
}
self.assertEqual(self.cclient.session[itemkey], expected)
Expand All @@ -190,7 +169,6 @@ def setUpClass(cls):
"data_timezone": "Europe/Athens",
"fetch_interval_minutes": "10",
"fetch_offset_minutes": "2",
"fetch_offset_timezone": "Europe/Kiev",
},
)

Expand All @@ -212,9 +190,6 @@ def test_fetch_interval_minutes(self):
def test_fetch_offset_minutes(self):
self.assertEqual(self._session("fetch_offset_minutes"), 2)

def test_fetch_offset_timezone(self):
self.assertEqual(self._session("fetch_offset_timezone"), "Europe/Kiev")


@override_settings(ENHYDRIS_USERS_CAN_ADD_CONTENT=True)
class FirstStepPostErrorTestCase(TestCase):
Expand Down Expand Up @@ -263,7 +238,6 @@ def _post_step_1(cls):
"data_timezone": "Europe/Athens",
"fetch_interval_minutes": "10",
"fetch_offset_minutes": "2",
"fetch_offset_timezone": "Europe/Kiev",
},
)

Expand Down Expand Up @@ -342,7 +316,6 @@ def _post_step_1(cls):
"data_timezone": "Europe/Athens",
"fetch_interval_minutes": "10",
"fetch_offset_minutes": "2",
"fetch_offset_timezone": "Europe/Kiev",
},
)

Expand Down Expand Up @@ -416,7 +389,6 @@ def test_updated_configuration(self):
"data_timezone": "Europe/Athens",
"fetch_interval_minutes": 10,
"fetch_offset_minutes": 2,
"fetch_offset_timezone": "Europe/Kiev",
"username": "someemail@email.com",
"password": "topsecret",
"device_locator": "",
Expand Down Expand Up @@ -508,7 +480,6 @@ def setUp(self):
"data_timezone": "Europe/Athens",
"fetch_interval_minutes": "10",
"fetch_offset_minutes": "2",
"fetch_offset_timezone": "Europe/Kiev",
}
session.save()

Expand Down
1 change: 0 additions & 1 deletion enhydris/telemetry/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ def copy_telemetry_data_from_database_to_session(self):
"data_timezone": None,
"fetch_interval_minutes": None,
"fetch_offset_minutes": None,
"fetch_offset_timezone": None,
"additional_config": {},
}
key = f"telemetry_{self.station.id}"
Expand Down

0 comments on commit 9211d7f

Please sign in to comment.