Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwurstsalat <mailtrash@posteo.de>2023-03-29 22:28:11 +0300
committerwurstsalat <mailtrash@posteo.de>2023-03-29 22:28:11 +0300
commitb8fc0a13d1be36853d1f462434fb5019bf6f0f32 (patch)
tree1bedea499fb040e27814ccdfd1c762e4f8fb83b9
parent325f10fabde5011ff033261e7f4df60b86ba9e45 (diff)
refactor: Use datetime directly for get_uf_relative_time
-rw-r--r--gajim/common/helpers.py11
-rw-r--r--gajim/gtk/chat_list_row.py3
-rw-r--r--test/common/test_get_uf_relative_time.py36
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__':