Need help on a project To :"Create a class called BankAccount with the following parameters "

Tim Chase python.list at tim.thechases.com
Thu Dec 24 15:48:53 EST 2015


On 2015-12-24 11:36, malitician at gmail.com wrote:
> it is a homework, but we are to figure out the solution first , all
> we need is some guidance please and not to be spoon fed like many
> thought 

Ah, with the intended interface as given by the tests, and the code
you've already put together, you'll find comp.lang.python is a much
friendlier place.


>   def test_invalid_operation(self):
>     self.assertEqual(self.my_account.withdraw(1000), "invalid
> transaction", msg='Invalid transaction') 

The test above is failing because your withdraw() method doesn't
return "invalid transaction" but rather prints it:

>     def withdraw(self, amount):
>         if self.balance>= amount:
>             self.balance  -=  amount
>         else:
>           print('invalid transaction')

as gleaned from this error message:

> [{"message": "Failure in line 23, in test_invalid_operation\n
> self.assertEqual(self.my_account.withdraw(1000), \"invalid
> transaction\", msg='Invalid transaction')\nAssertionError: Invalid
> transaction\n"}]}], "specs": {"count": 5, "pendingCount": 0,
> "time": "0.000080"}}

The test says "I expected that calling the function would return
"invalid transaction" but it didn't" (a better test-runner would
also have let you know that it had returned None)

Though frankly, I'd consider that a bad test, since it's an
exceptional condition, so it should be checking that a custom
InvalidTransactionException was raised.  But sometimes you have to
work with what you've got.

-tkc






More information about the Python-list mailing list