mirror of https://github.com/nicolargo/glances
Percentage bars: non-blocking solution for values out of range
parent
4426487e63
commit
25816ceae7
|
@ -45,6 +45,9 @@ class Bar(object):
|
||||||
self.__size = size
|
self.__size = size
|
||||||
# Bar current percent
|
# Bar current percent
|
||||||
self.__percent = 0
|
self.__percent = 0
|
||||||
|
# Min and max value
|
||||||
|
self.min_value = 0
|
||||||
|
self.max_value = 100
|
||||||
# Char used for the decoration
|
# Char used for the decoration
|
||||||
self.__pre_char = pre_char
|
self.__pre_char = pre_char
|
||||||
self.__post_char = post_char
|
self.__post_char = post_char
|
||||||
|
@ -69,9 +72,10 @@ class Bar(object):
|
||||||
|
|
||||||
@percent.setter
|
@percent.setter
|
||||||
def percent(self, value):
|
def percent(self, value):
|
||||||
if value < 0 or value > 100:
|
if value <= self.min_value:
|
||||||
raise AssertionError('The percent must be between 0 and 100.')
|
value = self.min_value
|
||||||
|
if value >= self.max_value:
|
||||||
|
value = self.max_value
|
||||||
self.__percent = value
|
self.__percent = value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
22
unitest.py
22
unitest.py
|
@ -179,17 +179,25 @@ class TestGlances(unittest.TestCase):
|
||||||
# self.assertEqual(total, len(stats_grab))
|
# self.assertEqual(total, len(stats_grab))
|
||||||
|
|
||||||
def test_011_output_bars_must_be_between_0_and_100_percent(self):
|
def test_011_output_bars_must_be_between_0_and_100_percent(self):
|
||||||
"""Test quick look plugin."""
|
"""Test quick look plugin.
|
||||||
|
|
||||||
|
> bar.min_value
|
||||||
|
0
|
||||||
|
> bar.max_value
|
||||||
|
100
|
||||||
|
> bar.percent = -1
|
||||||
|
> bar.percent
|
||||||
|
0
|
||||||
|
> bar.percent = 101
|
||||||
|
> bar.percent
|
||||||
|
100
|
||||||
|
"""
|
||||||
print('INFO: [TEST_011] Test progress bar')
|
print('INFO: [TEST_011] Test progress bar')
|
||||||
bar = Bar(size=1)
|
bar = Bar(size=1)
|
||||||
with self.assertRaises(AssertionError):
|
|
||||||
bar.percent = -1
|
bar.percent = -1
|
||||||
|
self.assertLessEqual(bar.percent, bar.min_value)
|
||||||
bar.percent = 101
|
bar.percent = 101
|
||||||
|
self.assertGreaterEqual(bar.percent, bar.max_value)
|
||||||
# 0 - 100 is an inclusive range, so these should not error.
|
|
||||||
bar.percent = 0
|
|
||||||
bar.percent = 100
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Reference in New Issue