Implement checks for raising messages with exceptions (#1113)
* Implement checks for messages being raised with exceptions (Fixes #1080) * Add self.assertRaisesWithMessage method to relevant exercise tests - Uses self.assertRaisesRegex - Checks only for the presence of a message, not content * Add meaningful messages to failing examples * octal: Switch to using a context manager for exception tests * Add note regarding error messages to the insert * simple-linked-list: Move hints.md to correct location * simple-cipher: Remove extra whitespace from lines * collatz-conjecture: Update hints.md * Regenerate README to include exceptions section
This commit is contained in:
committed by
Corey McCandless
parent
2f93a626f1
commit
f53e2ef08b
@@ -34,25 +34,35 @@ class TriangleTests(unittest.TestCase):
|
||||
self.assertEqual(Triangle(0.4, 0.6, 0.3).kind(), "scalene")
|
||||
|
||||
def test_triangles_with_no_size_are_illegal(self):
|
||||
with self.assertRaises(TriangleError):
|
||||
with self.assertRaisesWithMessage(TriangleError):
|
||||
Triangle(0, 0, 0)
|
||||
|
||||
def test_triangles_with_negative_sides_are_illegal(self):
|
||||
with self.assertRaises(TriangleError):
|
||||
with self.assertRaisesWithMessage(TriangleError):
|
||||
Triangle(3, 4, -5)
|
||||
|
||||
def test_triangles_violating_triangle_inequality_are_illegal(self):
|
||||
with self.assertRaises(TriangleError):
|
||||
with self.assertRaisesWithMessage(TriangleError):
|
||||
Triangle(1, 1, 3)
|
||||
|
||||
def test_triangles_violating_triangle_inequality_are_illegal_2(self):
|
||||
with self.assertRaises(TriangleError):
|
||||
with self.assertRaisesWithMessage(TriangleError):
|
||||
Triangle(2, 4, 2)
|
||||
|
||||
def test_triangles_violating_triangle_inequality_are_illegal_3(self):
|
||||
with self.assertRaises(TriangleError):
|
||||
with self.assertRaisesWithMessage(TriangleError):
|
||||
Triangle(7, 3, 2)
|
||||
|
||||
# Utility functions
|
||||
def setUp(self):
|
||||
try:
|
||||
self.assertRaisesRegex = self.assertRaisesRegexp
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def assertRaisesWithMessage(self, exception):
|
||||
return self.assertRaisesRegex(exception, r".+")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user