mirror of
https://github.com/lutris/lutris
synced 2024-10-14 19:53:53 +00:00
Return better formatted play times (Closes #1562)
This commit is contained in:
parent
e432d10d23
commit
7be6264aad
|
@ -1,5 +1,6 @@
|
|||
import unicodedata
|
||||
import re
|
||||
import math
|
||||
|
||||
|
||||
def slugify(value):
|
||||
|
@ -104,5 +105,19 @@ def escape_gtk_label(string):
|
|||
def get_formatted_playtime(playtime):
|
||||
"""Return a human readable value of the play time"""
|
||||
if not playtime:
|
||||
return "0.0 hrs"
|
||||
return "%.2f hrs" % float(playtime)
|
||||
return "No play time recorded"
|
||||
playtime = float(playtime)
|
||||
hours = math.floor(playtime)
|
||||
|
||||
if hours:
|
||||
hours_text = "%d hour%s" % (hours, "s" if hours > 1 else "")
|
||||
else:
|
||||
hours_text = ""
|
||||
|
||||
minutes = int((playtime - hours) * 60)
|
||||
if minutes:
|
||||
minutes_text = "%d minute%s" % (minutes, "s" if minutes > 1 else "")
|
||||
else:
|
||||
minutes_text = ""
|
||||
|
||||
return " and ".join([text for text in (hours_text, minutes_text) if text]) or "0 minute"
|
||||
|
|
|
@ -79,6 +79,13 @@ class TestStringUtils(TestCase):
|
|||
)
|
||||
self.assertEqual(strings.add_url_tags(text), expected)
|
||||
|
||||
def test_get_formatted_playtime(self):
|
||||
self.assertEqual(strings.get_formatted_playtime(None), "No play time recorded")
|
||||
self.assertEqual(strings.get_formatted_playtime(1.0), "1 hour")
|
||||
self.assertEqual(strings.get_formatted_playtime(2.0), "2 hours")
|
||||
self.assertEqual(strings.get_formatted_playtime(0.5), "30 minutes")
|
||||
self.assertEqual(strings.get_formatted_playtime(1.5), "1 hour and 30 minutes")
|
||||
self.assertEqual(strings.get_formatted_playtime(45.90), "45 hours and 53 minutes")
|
||||
|
||||
class TestVersionSort(TestCase):
|
||||
def test_parse_version(self):
|
||||
|
|
Loading…
Reference in a new issue