mirror of https://github.com/nicolargo/glances.git
Add unitary tests for pretty-date
This commit is contained in:
parent
7f2454154f
commit
db9785e37f
|
|
@ -275,19 +275,18 @@ def safe_makedirs(path):
|
|||
raise
|
||||
|
||||
|
||||
def pretty_date(time=False):
|
||||
def pretty_date(ref=False, now=datetime.now()):
|
||||
"""
|
||||
Get a datetime object or a int() Epoch timestamp and return a
|
||||
pretty string like 'an hour ago', 'Yesterday', '3 months ago',
|
||||
'just now', etc
|
||||
Source: https://stackoverflow.com/questions/1551382/user-friendly-time-format-in-python
|
||||
"""
|
||||
now = datetime.now()
|
||||
if isinstance(time, int):
|
||||
diff = now - datetime.fromtimestamp(time)
|
||||
elif isinstance(time, datetime):
|
||||
diff = now - time
|
||||
elif not time:
|
||||
if isinstance(ref, int):
|
||||
diff = now - datetime.fromtimestamp(ref)
|
||||
elif isinstance(ref, datetime):
|
||||
diff = now - ref
|
||||
elif not ref:
|
||||
diff = 0
|
||||
second_diff = diff.seconds
|
||||
day_diff = diff.days
|
||||
|
|
@ -313,10 +312,10 @@ def pretty_date(time=False):
|
|||
if day_diff < 7:
|
||||
return str(day_diff) + " days"
|
||||
if day_diff < 31:
|
||||
return str(day_diff // 7) + " weeks"
|
||||
return str(day_diff // 7) + " weeks" if (day_diff // 7) > 1 else "1 week"
|
||||
if day_diff < 365:
|
||||
return str(day_diff // 30) + " months"
|
||||
return str(day_diff // 365) + " years"
|
||||
return str(day_diff // 30) + " months" if (day_diff // 30) > 1 else "1 month"
|
||||
return str(day_diff // 365) + " years" if (day_diff // 365) > 1 else "1 year"
|
||||
|
||||
|
||||
def urlopen_auth(url, username, password):
|
||||
|
|
|
|||
|
|
@ -14,11 +14,12 @@ import functools
|
|||
import json
|
||||
import time
|
||||
import unittest
|
||||
from datetime import datetime
|
||||
|
||||
from glances import __version__
|
||||
from glances.events_list import GlancesEventsList
|
||||
from glances.filter import GlancesFilter, GlancesFilterList
|
||||
from glances.globals import LINUX, WINDOWS, string_value_to_float, subsample
|
||||
from glances.globals import LINUX, WINDOWS, pretty_date, string_value_to_float, subsample
|
||||
from glances.main import GlancesMain
|
||||
from glances.outputs.glances_bars import Bar
|
||||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
|
|
@ -561,6 +562,21 @@ class TestGlances(unittest.TestCase):
|
|||
self.assertTrue(gfl.is_filtered({'name': 'snake is in the place', 'username': 'nicolargo'}))
|
||||
self.assertFalse(gfl.is_filtered({'name': 'snake is in the place', 'username': 'notme'}))
|
||||
|
||||
def test_021_pretty_date(self):
|
||||
"""Test pretty_date"""
|
||||
print('INFO: [TEST_021] pretty_date')
|
||||
self.assertEqual(pretty_date(datetime(2024, 1, 1, 12, 0), datetime(2024, 1, 1, 12, 0)), 'just now')
|
||||
self.assertEqual(pretty_date(datetime(2024, 1, 1, 11, 59), datetime(2024, 1, 1, 12, 0)), 'a min')
|
||||
self.assertEqual(pretty_date(datetime(2024, 1, 1, 11, 55), datetime(2024, 1, 1, 12, 0)), '5 mins')
|
||||
self.assertEqual(pretty_date(datetime(2024, 1, 1, 11, 0), datetime(2024, 1, 1, 12, 0)), 'an hour')
|
||||
self.assertEqual(pretty_date(datetime(2024, 1, 1, 0, 0), datetime(2024, 1, 1, 12, 0)), '12 hours')
|
||||
self.assertEqual(pretty_date(datetime(2023, 12, 20, 0, 0), datetime(2024, 1, 1, 12, 0)), '1 week')
|
||||
self.assertEqual(pretty_date(datetime(2023, 12, 5, 0, 0), datetime(2024, 1, 1, 12, 0)), '3 weeks')
|
||||
self.assertEqual(pretty_date(datetime(2023, 12, 1, 0, 0), datetime(2024, 1, 1, 12, 0)), '1 month')
|
||||
self.assertEqual(pretty_date(datetime(2023, 6, 1, 0, 0), datetime(2024, 1, 1, 12, 0)), '7 months')
|
||||
self.assertEqual(pretty_date(datetime(2023, 1, 1, 0, 0), datetime(2024, 1, 1, 12, 0)), '1 year')
|
||||
self.assertEqual(pretty_date(datetime(2020, 1, 1, 0, 0), datetime(2024, 1, 1, 12, 0)), '4 years')
|
||||
|
||||
def test_094_thresholds(self):
|
||||
"""Test thresholds classes"""
|
||||
print('INFO: [TEST_094] Thresholds')
|
||||
|
|
|
|||
Loading…
Reference in New Issue