Simple graph implemented w/ unit tests

You have custom errors defined with behaviors to raise them, but you're never testing that those errors are raised when you expect them to be. Here's a good way of doing so: http://pytest.org/latest/assert.html#assertions-about-expected-exceptions