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
|
||||
# Bar current percent
|
||||
self.__percent = 0
|
||||
# Min and max value
|
||||
self.min_value = 0
|
||||
self.max_value = 100
|
||||
# Char used for the decoration
|
||||
self.__pre_char = pre_char
|
||||
self.__post_char = post_char
|
||||
|
@ -69,9 +72,10 @@ class Bar(object):
|
|||
|
||||
@percent.setter
|
||||
def percent(self, value):
|
||||
if value < 0 or value > 100:
|
||||
raise AssertionError('The percent must be between 0 and 100.')
|
||||
|
||||
if value <= self.min_value:
|
||||
value = self.min_value
|
||||
if value >= self.max_value:
|
||||
value = self.max_value
|
||||
self.__percent = value
|
||||
|
||||
@property
|
||||
|
|
26
unitest.py
26
unitest.py
|
@ -179,17 +179,25 @@ class TestGlances(unittest.TestCase):
|
|||
# self.assertEqual(total, len(stats_grab))
|
||||
|
||||
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')
|
||||
bar = Bar(size=1)
|
||||
with self.assertRaises(AssertionError):
|
||||
bar.percent = -1
|
||||
bar.percent = 101
|
||||
|
||||
# 0 - 100 is an inclusive range, so these should not error.
|
||||
bar.percent = 0
|
||||
bar.percent = 100
|
||||
|
||||
bar.percent = -1
|
||||
self.assertLessEqual(bar.percent, bar.min_value)
|
||||
bar.percent = 101
|
||||
self.assertGreaterEqual(bar.percent, bar.max_value)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
Loading…
Reference in New Issue