-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcartest.py
62 lines (61 loc) · 3.14 KB
/
cartest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import unittest
from carsample import Car
class CarClassTest(unittest.TestCase):
"""docstring for CarClassTest"""
def test_car_instance(self):
honda = Car('Honda')
self.assertIsInstance(honda, Car, msg='The object should be an instance of the `Car` class')
def test_object_type(self):
honda = Car('Honda')
self.assertTrue((type(honda) is Car), msg='The object should be a type of `Car`')
def test_default_car_name(self):
gm = Car()
self.assertEqual('General', gm.name,
msg='The car should be called `General` if no name was passed as an argument')
def test_default_car_model(self):
gm = Car()
self.assertEqual('GM', gm.model, msg="The car's model should be called `GM` if no model was passed as an argument")
def test_car_properties(self):
toyota = Car('Toyota', 'Corolla')
self.assertListEqual(['Toyota', 'Corolla'],
[toyota.name, toyota.model],
msg='The car name and model should be a property of the car')
def test_car_doors(self):
opel = Car('Opel', 'Omega 3')
porshe = Car('Porshe', '911 Turbo')
self.assertListEqual([opel.num_of_doors,
porshe.num_of_doors,
Car('Koenigsegg', 'Agera R').num_of_doors],
[4, 2, 2],
msg='The car shoud have four (4) doors except if its a Porshe or Koenigsegg')
def test_car_wheels(self):
man = Car('MAN', 'Truck', 'trailer')
koenigsegg = Car('Koenigsegg', 'Agera R')
self.assertEqual([8, 4], [man.num_of_wheels, koenigsegg.num_of_wheels],
msg='The car shoud have four (4) wheels except its a type of trailer')
def test_car_type(self):
koenigsegg = Car('Koenigsegg', 'Agera R')
self.assertTrue(koenigsegg.is_saloon(),
msg='The car type should be saloon if it is not a trailer')
def test_car_speed(self):
man = Car('MAN', 'Truck', 'trailer')
parked_speed = man.speed
moving_speed = man.drive(7).speed
self.assertListEqual([parked_speed, moving_speed],
[0, 77],
msg='The Trailer should have speed 0 km/h until you put `the pedal to the metal`')
def test_car_speed2(self):
man = Car('Mercedes', 'SLR500')
parked_speed = man.speed
moving_speed = man.drive(3).speed
self.assertListEqual([parked_speed, moving_speed],
[0, 1000],
msg='The Mercedes should have speed 0 km/h until you put `the pedal to the metal`')
def test_drive_car(self):
man = Car('MAN', 'Truck', 'trailer')
moving_man = man.drive(7)
moving_man_instance = isinstance(moving_man, Car)
moving_man_type = type(moving_man) is Car
self.assertListEqual([True, True, man.speed],
[moving_man_instance, moving_man_type, moving_man.speed],
msg='The car drive function should return the instance of the Car class')