class InsufficientCreditError(Exception): """Raised when trying to subtract more than available""" pass def upgrade(amount, rower): if rower.eurocredits > amount: # pragma: no cover return rower.eurocredits else: rower.eurocredits = amount rower.save() return rower.eurocredits return rower.eurocredits # pragma: no cover def withdraw(amount, rower): if rower.eurocredits < amount: # pragma: no cover rower.eurocredits = 0 rower.save() raise InsufficientCreditError else: rower.eurocredits = rower.eurocredits - amount rower.save() return rower.eurocredits return rower.eurocredits # pragma: no cover def discount(amount, rower): # pragma: no cover if amount < rower.eurocredits: return amount else: return rower.eurocredits return 0 def discounted(amount, rower): if amount > rower.eurocredits: # pragma: no cover return amount-rower.eurocredits else: return 0 return 0 # pragma: no cover