Created
October 21, 2020 16:30
-
-
Save pybites/29e6bd91344b4ff747c2f18daf73d00e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# cars.py | |
from datetime import date | |
class Car: | |
def __init__(self, model, year): | |
self.model = model | |
self.year = year | |
self._mileage = [] | |
def __str__(self): | |
return f"Car: {self.model} ({self.year})" | |
def drive(self, miles): | |
self._mileage.append(miles) | |
@property | |
def is_flashy(self): | |
return self.year == date.today().year | |
@property | |
def miles_driven(self): | |
return sum(self._mileage) | |
if __name__ == "__main__": | |
car = Car("Sierra", 2020) | |
car.drive(2) | |
car.drive(20) | |
car.drive(33) | |
print(car.miles_diven) | |
# test_cars.py | |
import pytest | |
from cars import Car | |
@pytest.fixture | |
def car(): | |
return Car("Sierra", 2020) | |
@pytest.fixture | |
def car2(): | |
return Car("Sierra old", 2018) | |
@pytest.fixture | |
def driving(car): | |
for miles in (2, 3, 44, 66, 2, 1): | |
car.drive(miles) | |
def test_init(car, car2): | |
assert car.miles_driven == 0 | |
assert car2.miles_driven == 0 | |
def test_str(car, car2): | |
assert str(car) == 'Car: Sierra (2020)' | |
assert str(car2) == 'Car: Sierra old (2018)' | |
def test_miles_driven(car, driving): | |
assert car.miles_driven == 118 | |
def test_flashy(car, car2): | |
assert car.is_flashy is True | |
assert car2.is_flashy is False |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment