more efficient sync for already known books
py.test fixtures and a basic first test
a little more exception tidying