diff options
author | wurstsalat <mailtrash@posteo.de> | 2023-03-29 22:28:11 +0300 |
---|---|---|
committer | wurstsalat <mailtrash@posteo.de> | 2023-03-29 22:28:11 +0300 |
commit | b8fc0a13d1be36853d1f462434fb5019bf6f0f32 (patch) | |
tree | 1bedea499fb040e27814ccdfd1c762e4f8fb83b9 | |
parent | 325f10fabde5011ff033261e7f4df60b86ba9e45 (diff) |
refactor: Use datetime directly for get_uf_relative_time
-rw-r--r-- | gajim/common/helpers.py | 11 | ||||
-rw-r--r-- | gajim/gtk/chat_list_row.py | 3 | ||||
-rw-r--r-- | test/common/test_get_uf_relative_time.py | 36 |
3 files changed, 25 insertions, 25 deletions
diff --git a/gajim/common/helpers.py b/gajim/common/helpers.py index 2f9b041e8..1ec5e7794 100644 --- a/gajim/common/helpers.py +++ b/gajim/common/helpers.py @@ -250,12 +250,11 @@ def get_uf_affiliation(affiliation: Union[Affiliation, str], return '' -def get_uf_relative_time(timestamp: float, - timenow: Optional[float] = None) -> str: - date_time = datetime.fromtimestamp(timestamp) - if timenow: # used by unittest - now = datetime.fromtimestamp(timenow) - else: +def get_uf_relative_time(date_time: datetime, + now: Optional[datetime] = None + ) -> str: + + if now is None: # used by unittest now = datetime.now() timespan = now - date_time diff --git a/gajim/gtk/chat_list_row.py b/gajim/gtk/chat_list_row.py index aca3d0234..b9a0b06b1 100644 --- a/gajim/gtk/chat_list_row.py +++ b/gajim/gtk/chat_list_row.py @@ -18,6 +18,7 @@ from typing import Any from typing import Optional import pickle +from datetime import datetime from urllib.parse import urlparse import cairo @@ -324,7 +325,7 @@ class ChatListRow(Gtk.ListBoxRow): if self.timestamp == 0: return self._ui.timestamp_label.set_text( - get_uf_relative_time(self.timestamp)) + get_uf_relative_time(datetime.fromtimestamp(self.timestamp))) def add_unread(self, text: str) -> None: self._unread_count += 1 diff --git a/test/common/test_get_uf_relative_time.py b/test/common/test_get_uf_relative_time.py index 36958889f..80c0864ae 100644 --- a/test/common/test_get_uf_relative_time.py +++ b/test/common/test_get_uf_relative_time.py @@ -19,16 +19,16 @@ class GetRelativeTimeTest(unittest.TestCase): '''Test timedelta less than 1 minute''' timenow = datetime(2023, 1, 2, 3, 4, 0, tzinfo=local_timezone) timestamp1 = timenow - timedelta(seconds=30) - self.assertEqual(get_uf_relative_time(timestamp1.timestamp(), - timenow.timestamp()), + self.assertEqual(get_uf_relative_time(timestamp1, + timenow), _('Just now')) def test_sub_15_minutes(self): '''Test timedelta less than 15 minutes and more than 1 minute ago''' timenow = datetime(2023, 1, 2, 3, 4, 0, tzinfo=local_timezone) timestamp1 = timenow - timedelta(minutes=3) - self.assertEqual(get_uf_relative_time(timestamp1.timestamp(), - timenow.timestamp()), + self.assertEqual(get_uf_relative_time(timestamp1, + timenow), ngettext( '%s min ago', '%s mins ago', @@ -40,8 +40,8 @@ class GetRelativeTimeTest(unittest.TestCase): '''Test timedelta less than 15 minutes and it is the next day''' timenow = datetime(2023, 1, 1, 0, 5, 0, tzinfo=local_timezone) timestamp1 = timenow - timedelta(minutes=10) - self.assertEqual(get_uf_relative_time(timestamp1.timestamp(), - timenow.timestamp()), + self.assertEqual(get_uf_relative_time(timestamp1, + timenow), ngettext( '%s min ago', '%s mins ago', @@ -53,24 +53,24 @@ class GetRelativeTimeTest(unittest.TestCase): '''Test today: same day and more than 15 minutes ago''' timenow = datetime(2023, 1, 2, 12, 0, 0, tzinfo=local_timezone) timestamp1 = timenow - timedelta(hours=4) - self.assertEqual(get_uf_relative_time(timestamp1.timestamp(), - timenow.timestamp()), + self.assertEqual(get_uf_relative_time(timestamp1, + timenow), timestamp1.strftime(app.settings.get('time_format'))) def test_yesterday_less_than_24h(self): '''Test yesterday and less than 24h ago''' timenow = datetime(2023, 1, 2, 12, 0, 0, tzinfo=local_timezone) timestamp1 = datetime(2023, 1, 1, 14, 0, 0, tzinfo=local_timezone) - self.assertEqual(get_uf_relative_time(timestamp1.timestamp(), - timenow.timestamp()), + self.assertEqual(get_uf_relative_time(timestamp1, + timenow), _('Yesterday')) def test_yesterday_more_than_24h(self): '''Test yesterday and more than 24h ago''' timenow = datetime(2023, 1, 2, 12, 0, 0, tzinfo=local_timezone) timestamp1 = datetime(2023, 1, 1, 10, 0, 0, tzinfo=local_timezone) - self.assertEqual(get_uf_relative_time(timestamp1.timestamp(), - timenow.timestamp()), + self.assertEqual(get_uf_relative_time(timestamp1, + timenow), _('Yesterday')) def test_weekday(self): @@ -78,24 +78,24 @@ class GetRelativeTimeTest(unittest.TestCase): than 7 days ago, should return the weekday, i.e. 'Sun' for Sunday''' timenow = datetime(2023, 1, 5, 1, 2, 3, tzinfo=local_timezone) timestamp1 = datetime(2023, 1, 1, 4, 5, 6, tzinfo=local_timezone) - self.assertEqual(get_uf_relative_time(timestamp1.timestamp(), - timenow.timestamp()), + self.assertEqual(get_uf_relative_time(timestamp1, + timenow), timestamp1.strftime('%a')) def test_month_day(self): '''Test month_day: timestamp more than 7 days ago but less than 365''' timenow = datetime(2023, 1, 5, 1, 2, 3, tzinfo=local_timezone) timestamp1 = datetime(2022, 11, 15, 4, 5, 6, tzinfo=local_timezone) - self.assertEqual(get_uf_relative_time(timestamp1.timestamp(), - timenow.timestamp()), + self.assertEqual(get_uf_relative_time(timestamp1, + timenow), timestamp1.strftime('%b %d')) def test_year(self): '''Test year: timestamp more than 365 days ago''' timenow = datetime(2023, 1, 5, 1, 2, 3, tzinfo=local_timezone) timestamp1 = datetime(2022, 1, 1, 4, 5, 6, tzinfo=local_timezone) - self.assertEqual(get_uf_relative_time(timestamp1.timestamp(), - timenow.timestamp()), '2022') + self.assertEqual(get_uf_relative_time(timestamp1, + timenow), '2022') if __name__ == '__main__': |