def test_delete_next_reassignment():
    l = Slist()
    l.prepend("Bob")
    l.prepend("Dave")
    l.prepend("Amy")
    l.prepend("Carol")
    l.delete("Amy")
    l.delete("Dave")
    assert l.head.next.key == "Bob"
def test_delete():
    l = Slist()
    l.prepend("Bob")
    l.prepend("Amy")
    l.prepend("Carol")
    l.delete("Carol")
    assert l.head.key == "Amy"
    l.delete("Bob")
    assert l.head.next is None

    l = Slist()
    l.prepend("Bob")
    l.prepend("Amy")
    l.prepend("Carol")
    with pytest.raises(ValueError):
        l.delete("Edgar")

    l = Slist()
    with pytest.raises(ValueError):
        l.delete("Edgar")