Exploring assert methods
Now we have just one requirement for update
remaining:
-Done- It should take a timestamp and price value and set it on the object
-Done- The price cannot be negative
After multiple updates, the object gives us the latest price
Let us take the remaining requirement. Here is the test:
def test_stock_price_should_give_the_latest_price(self): goog = Stock("GOOG") goog.update(datetime(2014, 2, 12), price=10) goog.update(datetime(2014, 2, 13), price=8.4) self.assertAlmostEqual(8.4, goog.price, delta=0.0001)
What this test does is to simply call update
twice, and when we ask for the price, provide us with the newer one. The interesting point about the test is that we use the assertAlmostEqual
method here. This method is often used when checking equality with floating point numbers. Why don't we use plain old assertEqual
? The reason is that due to the way floating points are stored, the result may not be exactly the number you expect. There...