diff --git a/glances/outputs/glances_bars.py b/glances/outputs/glances_bars.py index f6535368..6f8e7d21 100644 --- a/glances/outputs/glances_bars.py +++ b/glances/outputs/glances_bars.py @@ -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 diff --git a/unitest.py b/unitest.py index e4fdc985..94efddf3 100755 --- a/unitest.py +++ b/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()