Here is the customer class code:
class Customer(): #constructor def __init__(self, id, name, email, rewards): self.id=id self.name=name self.email=email self.rewards=rewards #gets for fields def getId(self): return self.id def getName(self): return self.name def getEmail(self): return self.email def getRewards(self): return self.rewards #methods to add or use rewards def addReward(self, points): #make sure points is an integer points=int(points) self.rewards += points def useRewards(self, points): points=int(points) self.rewards = self.rewards - points # class string method def __str__(self): return self.name + ' ' + self.email
Here is the code for the test.py:
import unittest from customer import Customer class TestCustomer(unittest.TestCase): #set up an instance of the class def setUp(self): self.c=Customer(123,'Bret Brown', 'bb@gmail.com', 100) #test the get methods def test_Id(self): self.assertEqual(self.c.getId(), 123) def test_name(self): self.assertEqual(self.c.getName(),'Bret Brown' ) # test the rewards def test_AddReward(self): self.c.addReward(50) self.assertEqual(self.c.getRewards(), 150) def test_UseReward(self): self.c.useRewards(50) self.assertEqual(self.c.getRewards(), 50) #other tests def test_Addreward2(self): self.c.addReward(50) self.assertGreater(self.c.getRewards(), 100) def test_addRewards3(self): self.c.addReward(50.5) self.assertEqual(self.c.getRewards(), 150) # test class string method def test_ToString(self): self.assertEqual(str(self.c), 'Bret Brown bb@gmail.com')