def test_dvd_class_method(self): dvd = DVD.from_date(1, "A", "16.10.1997", 18) self.assertEqual(dvd.name, "A") self.assertEqual(dvd.id, 1) self.assertEqual(dvd.creation_month, "October") self.assertEqual(dvd.creation_year, 1997) self.assertEqual(dvd.age_restriction, 18) self.assertEqual(dvd.is_rented, False)
def test_movie_world_return_dvd_unsuccessful(self): movie_world = MovieWorld("Test") d = DVD("A", 1, 1254, "February", 10) c = Customer("Pesho", 20, 4) movie_world.add_customer(c) movie_world.add_dvd(d) result = movie_world.return_dvd(4, 1) self.assertEqual(result, "Pesho does not have that DVD")
def test_dvd_init(self): dvd = DVD("B", 1, 2020, "January", 10) self.assertEqual(dvd.name, "B") self.assertEqual(dvd.id, 1) self.assertEqual(dvd.creation_month, "January") self.assertEqual(dvd.creation_year, 2020) self.assertEqual(dvd.age_restriction, 10) self.assertEqual(dvd.is_rented, False)
def test_movie_world_rent_dvd_already_rented_by_user(self): movie_world = MovieWorld("Test") d = DVD("A", 1, 1254, "February", 10) c = Customer("Pesho", 20, 4) movie_world.add_customer(c) movie_world.add_dvd(d) movie_world.rent_dvd(4, 1) result = movie_world.rent_dvd(4, 1) self.assertEqual(result, "Pesho has already rented A")
def test_movie_world_rent_dvd_no_permision(self): movie_world = MovieWorld("Test") d = DVD("A", 1, 1254, "February", 18) c = Customer("Pesho", 16, 4) movie_world.add_customer(c) movie_world.add_dvd(d) result = movie_world.rent_dvd(4, 1) self.assertEqual(result, "Pesho should be at least 18 to rent this movie")
def test_movie_world_repr(self): movie_world = MovieWorld("Test") d = DVD("A", 1, 1254, "February", 10) c = Customer("Pesho", 20, 4) movie_world.add_customer(c) movie_world.add_dvd(d) movie_world.rent_dvd(4, 1) actual = repr(movie_world).strip('\n') expected = "4: Pesho of age 20 has 1 rented DVD's (A)\n1: A (February 1254) has age restriction 10. Status: rented" self.assertEqual(actual, expected)
def test_movie_world_rent_dvd_success(self): movie_world = MovieWorld("Test") d = DVD("A", 1, 1254, "February", 10) c = Customer("Pesho", 20, 4) movie_world.add_customer(c) movie_world.add_dvd(d) result = movie_world.rent_dvd(4, 1) self.assertEqual(result, "Pesho has successfully rented A") self.assertEqual(d.is_rented, True) self.assertEqual(c.rented_dvds[0], d)
def test_movie_world_rent_dvd_already_rented(self): movie_world = MovieWorld("Test") d = DVD("A", 1, 1254, "February", 10) c = Customer("Pesho", 20, 4) c2 = Customer("Gosho", 26, 2) movie_world.add_customer(c) movie_world.add_customer(c2) movie_world.add_dvd(d) movie_world.rent_dvd(4, 1) result = movie_world.rent_dvd(2, 1) self.assertEqual(result, "DVD is already rented")
class Customer: def __init__(self, name: str, age: int, id: int): self.name = name self.age = age self.id = id self.rented_dvds = [] def __repr__(self): return f"{self.id}: {self.name} of age {self.age} has {len(self.rented_dvds)} " \ f"rented DVD's ({', '.join([dvd.name for dvd in self.rented_dvds])})" c1 = Customer("John", 16, 1) c2 = Customer("Anna", 55, 2) d1 = DVD("Black Widow", 1, 2020, "April", 18) d2 = DVD.from_date(2, "The Croods 2", "23.12.2020", 3) movie_world = MovieWorld("The Best Movie Shop") movie_world.add_customer(c1) movie_world.add_customer(c2) movie_world.add_dvd(d1) movie_world.add_dvd(d2) print(movie_world.rent_dvd(1, 1)) print(movie_world.rent_dvd(2, 1)) print(movie_world.rent_dvd(1, 2)) print(movie_world)
def test_movie_world_add_dvd_overflow(self): movie_world = MovieWorld("Test") for _ in range(16): movie_world.add_dvd(DVD("A", 1, 1254, "February", 10)) self.assertEqual(len(movie_world.dvds), 15)
def test_movie_world_add_dvd_success(self): movie_world = MovieWorld("Test") d = DVD("A", 1, 1254, "February", 10) movie_world.add_dvd(d) self.assertEqual(movie_world.dvds, [d])
def test_dvd_repr(self): dvd = DVD.from_date(1, "A", "16.10.1997", 18) self.assertEqual( repr(dvd), "1: A (October 1997) has age restriction 18. Status: not rented")
from project.customer import Customer from project.dvd import DVD from project.movie_world import MovieWorld c1 = Customer("John", age=16, id=1) c2 = Customer("Anna", age=55, id=2) d1 = DVD("Black Widow", id=1, creation_year=2020, creation_month="April", age_restriction=18) d2 = DVD.from_date(2, "The Croods 2", "23.12.2020", 3) movie_world = MovieWorld("The Best Movie Shop") movie_world.add_customer(c1) movie_world.add_customer(c2) movie_world.add_dvd(d1) movie_world.add_dvd(d2) print(movie_world.rent_dvd(1, 1)) print(movie_world.rent_dvd(2, 1)) print(movie_world.rent_dvd(1, 2)) print(movie_world)
from project.customer import Customer from project.dvd import DVD from project.movie_world import MovieWorld customer = Customer('Atanas', 18, 123) dvd = DVD('CONG: In the Wild', 555, 1998, 'August', 18) dvd2 = DVD.from_date(777, 'CHE', '12.09.1988', 18) # dvd.is_rented = True movie_world = MovieWorld("Gaco") movie_world.add_customer(customer) movie_world.add_dvd(dvd) movie_world.add_dvd(dvd2) print(movie_world.rent_dvd(123, 555)) print(movie_world.rent_dvd(123, 555)) print(movie_world.return_dvd(123, 555)) print(movie_world.return_dvd(123, 555)) print(movie_world.rent_dvd(123, 777)) print(movie_world)