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
path: root/test
diff options
context:
space:
mode:
authorBronko <c0de_gitlab_gajim@teamchris.info>2023-01-14 01:49:05 +0300
committerPhilipp Hörist <philipp@hoerist.com>2023-01-14 01:49:05 +0300
commit74bd02d085e2d586595e6520429d6f583fc2edc2 (patch)
tree7b94f06870c0e825c6540c4efbcf1c0bcb90ff28 /test
parent304e9a9870974da515352bd9991eade5ae839925 (diff)
imprv: ChatList: Improve timedelta function
Diffstat (limited to 'test')
-rw-r--r--test/common/test_get_uf_relative_time.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/test/common/test_get_uf_relative_time.py b/test/common/test_get_uf_relative_time.py
new file mode 100644
index 000000000..b1d22e1cd
--- /dev/null
+++ b/test/common/test_get_uf_relative_time.py
@@ -0,0 +1,89 @@
+
+import unittest
+from datetime import datetime
+from datetime import timedelta
+from datetime import timezone
+
+from gajim.common import app
+from gajim.common.helpers import get_uf_relative_time
+from gajim.common.settings import Settings
+
+app.settings = Settings(in_memory=True)
+
+
+class GetRelativeTimeTest(unittest.TestCase):
+ '''Tests for the get_uf_relative_time function.'''
+
+ def test_sub_1_minute(self):
+ '''Test timedelta less than 1 minute'''
+ timenow = datetime(2023, 1, 2, 3, 4, 0, tzinfo=timezone.utc)
+ timestamp1 = timenow - timedelta(seconds=30)
+ self.assertEqual(get_uf_relative_time(timestamp1.timestamp(),
+ timenow.timestamp()), '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=timezone.utc)
+ timestamp1 = timenow - timedelta(minutes=3)
+ self.assertEqual(get_uf_relative_time(timestamp1.timestamp(),
+ timenow.timestamp()),
+ '3 mins ago')
+
+ def test_sub_15_minutes_next_day(self):
+ '''Test timedelta less than 15 minutes and it is the next day'''
+ timenow = datetime(2023, 1, 1, 0, 5, 0, tzinfo=timezone.utc)
+ timestamp1 = timenow - timedelta(minutes=10)
+ self.assertEqual(get_uf_relative_time(timestamp1.timestamp(),
+ timenow.timestamp()),
+ '10 mins ago')
+
+ def test_today(self):
+ '''Test today: same day and more than 15 minutes ago'''
+ timenow = datetime(2023, 1, 2, 12, 0, 0, tzinfo=timezone.utc)
+ timestamp1 = timenow - timedelta(hours=4)
+ self.assertEqual(get_uf_relative_time(timestamp1.timestamp(),
+ timenow.timestamp()),
+ 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=timezone.utc)
+ timestamp1 = datetime(2023, 1, 1, 14, 0, 0, tzinfo=timezone.utc)
+ self.assertEqual(get_uf_relative_time(timestamp1.timestamp(),
+ timenow.timestamp()), 'Yesterday')
+
+ def test_yesterday_more_than_24h(self):
+ '''Test yesterday and more than 24h ago'''
+ timenow = datetime(2023, 1, 2, 12, 0, 0, tzinfo=timezone.utc)
+ timestamp1 = datetime(2023, 1, 1, 10, 0, 0, tzinfo=timezone.utc)
+ self.assertEqual(get_uf_relative_time(timestamp1.timestamp(),
+ timenow.timestamp()),
+ 'Yesterday')
+
+ def test_weekday(self):
+ '''Test weekday: timestamp older than yesterday and less
+ than 7 days ago, should return the weekday, i.e. 'Sun' for Sunday'''
+ timenow = datetime(2023, 1, 5, 1, 2, 3, tzinfo=timezone.utc)
+ timestamp1 = datetime(2023, 1, 1, 4, 5, 6, tzinfo=timezone.utc)
+ self.assertEqual(get_uf_relative_time(timestamp1.timestamp(),
+ timenow.timestamp()),
+ 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=timezone.utc)
+ timestamp1 = datetime(2022, 11, 15, 4, 5, 6, tzinfo=timezone.utc)
+ self.assertEqual(get_uf_relative_time(timestamp1.timestamp(),
+ timenow.timestamp()),
+ 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=timezone.utc)
+ timestamp1 = datetime(2022, 1, 1, 4, 5, 6, tzinfo=timezone.utc)
+ self.assertEqual(get_uf_relative_time(timestamp1.timestamp(),
+ timenow.timestamp()), '2022')
+
+
+if __name__ == '__main__':
+ unittest.main()