Include new exception in purchases rollback
Change exception type in create_purchase method
Add some tests to create_purchase test case