fork download
  1. import unittest
  2.  
  3. class Student(object):
  4. def __init__(self, name, score):
  5. try:
  6. self.name = name
  7. self.score = score
  8. except ValueError as e:
  9. raise ValueError
  10.  
  11. def get_grade(self):
  12. if 60 <= self.score < 80:
  13. return 'B'
  14. if 80 <= self.score <= 100:
  15. return 'A'
  16. if self.score>100 or self.score<0:
  17. raise ValueError
  18. return 'C'
  19.  
  20. class TestStudent(unittest.TestCase):
  21.  
  22. def test_80_to_100(self):
  23. s1 = Student('Bart', 80)
  24. s2 = Student('Lisa', 100)
  25. self.assertEqual(s1.get_grade(), 'A')
  26. self.assertEqual(s2.get_grade(), 'A')
  27.  
  28. def test_60_to_80(self):
  29. s1 = Student('Bart', 60)
  30. s2 = Student('Lisa', 79)
  31. self.assertEqual(s1.get_grade(), 'B')
  32. self.assertEqual(s2.get_grade(), 'B')
  33.  
  34. def test_0_to_60(self):
  35. s1 = Student('Bart', 0)
  36. s2 = Student('Lisa', 59)
  37. self.assertEqual(s1.get_grade(), 'C')
  38. self.assertEqual(s2.get_grade(), 'C')
  39.  
  40. def test_invalid(self):
  41. s1 = Student('Bart', -1)
  42. s2 = Student('Lisa', 101)
  43. with self.assertRaises(ValueError):
  44. s1.get_grade()
  45. with self.assertRaises(ValueError):
  46. s2.get_grade()
  47.  
  48. if __name__ == '__main__':
  49. unittest.main()
  50. # your code goes here
Success #stdin #stdout #stderr 0.52s 20284KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
....
----------------------------------------------------------------------
Ran 4 tests in 0.001s

OK