def setUp(self): Associate.registration = 0 Associate.associates = [] Movie.number = 0 Movie.movies = [] Copy.copies = [] Rent.code = 0 Rent.overdues = [] Rent.rent_list = [] self.associate1 = Associate("Beltrano Astrobaldo da Silva", "Av. pelinca, 245", "22-88779966") self.associate2 = Associate("Bensocriol da Silva Sauro", "Rua dos Bobos, 0", "22-23456789") self.director1 = Famous("Fulano M.", "Germany", datetime.date(1967, 06, 07)) self.director2 = Famous("Edgar Wright", "England", datetime.date(1967, 05, 07)) self.director3 = Famous("Abelardo D.", "Brazil", datetime.date(1967, 07, 07)) self.actor1 = Famous("Michael C. Hall", "Brazil", datetime.date(1987, 06, 07)) self.actor2 = Famous("Michael Cera", "Itally", datetime.date(1957, 06, 07)) self.atriz1 = Famous("Julia Styles", "Germany", datetime.date(1967, 06, 07)) self.atriz2 = Famous("Mary Elizabeth Winstead", "Itally", datetime.date(1987, 10, 07)) self.atriz3 = Famous("Julia Ben", "Canada", datetime.date(1947, 06, 07)) self.movie1 = Movie(1, "Dexter", 120, 1999, "Terror", self.director1.name, (self.atriz1.name, self.actor1.name), "21/05/2001") self.movie2 = Movie(2, "Scott Pilgrim Contra o Mundo", 112, 2010, "Acao", self.director2.name, (self.actor2.name, self.atriz2.name), "21/12/2010") self.movie3 = Movie(3, "Fix", 120, 1999, "Terror", self.director1.name, (self.atriz3.name, self.actor1.name), "21/05/2001") self.movie4 = Movie(4, "This Ones", 120, 1999, "Terror", self.director3.name, (self.atriz1.name, self.actor1.name), "21/05/2001") self.copy1 = Copy(1, self.movie1.number, "bom") self.copy2 = Copy(2, self.movie2.number, "bom") self.copy3 = Copy(3, self.movie3.number, "bom") self.copy4 = Copy(21, self.movie1.number, "mau") self.copy5 = Copy(22, self.movie1.number, "mau") self.copy6 = Copy(23, self.movie1.number, "bom") self.copy7 = Copy(31, self.movie2.number, "bom") self.copy8 = Copy(32, self.movie2.number, "mau") self.copy9 = Copy(5, self.movie4.number, "bom") self.rent1 = Rent(1, self.associate1.registration, self.copy1.concine_code, datetime.datetime(2011, 05, 20, 14, 20)) self.rent1.close(datetime.datetime(2011, 05, 22, 14, 20)) self.rent2 = Rent(2, self.associate1.registration, self.copy2.concine_code, datetime.datetime(2011, 05, 20, 14, 20)) self.rent2.close(datetime.datetime(2011, 05, 22, 14, 20)) self.rent3 = Rent(3, self.associate1.registration, self.copy3.concine_code, datetime.datetime(2011, 05, 20, 14, 20)) self.rent3.close(datetime.datetime(2011, 05, 22, 14, 20)) self.rent4 = Rent(4, self.associate2.registration, self.copy6.concine_code, datetime.datetime(2011, 05, 20, 14, 30)) self.rent4.close(datetime.datetime(2011, 05, 24, 14, 30)) self.rent5 = Rent(5, self.associate2.registration, self.copy7.concine_code, datetime.datetime(2011, 05, 20, 14, 30)) self.rent5.close(datetime.datetime(2011, 05, 22, 14, 30))
def test_view_rents(self): rents = Rent.view_all() rents.sort() |should| equal_to([ [1, datetime.datetime(2011, 5, 20, 14, 20), datetime.datetime(2011, 5, 22, 14, 20), 3.0], [1, datetime.datetime(2011, 5, 20, 14, 20), datetime.datetime(2011, 5, 22, 14, 20), 3.0], [1, datetime.datetime(2011, 5, 20, 14, 20), datetime.datetime(2011, 5, 22, 14, 20), 3.0], [2, datetime.datetime(2011, 5, 20, 14, 30), datetime.datetime(2011, 5, 24, 14, 30), 4.0], [2, datetime.datetime(2011, 5, 20, 14, 30), datetime.datetime(2011, 5, 22, 14, 30), 3.0] ].sort())
class TestVideoClub(unittest.TestCase): def setUp(self): Associate.registration = 0 Associate.associates = [] Movie.number = 0 Movie.movies = [] Copy.copies = [] Rent.code = 0 Rent.overdues = [] Rent.rent_list = [] self.associate1 = Associate("Beltrano Astrobaldo da Silva", "Av. pelinca, 245", "22-88779966") self.associate2 = Associate("Bensocriol da Silva Sauro", "Rua dos Bobos, 0", "22-23456789") self.director1 = Famous("Fulano M.", "Germany", datetime.date(1967, 06, 07)) self.director2 = Famous("Edgar Wright", "England", datetime.date(1967, 05, 07)) self.director3 = Famous("Abelardo D.", "Brazil", datetime.date(1967, 07, 07)) self.actor1 = Famous("Michael C. Hall", "Brazil", datetime.date(1987, 06, 07)) self.actor2 = Famous("Michael Cera", "Itally", datetime.date(1957, 06, 07)) self.atriz1 = Famous("Julia Styles", "Germany", datetime.date(1967, 06, 07)) self.atriz2 = Famous("Mary Elizabeth Winstead", "Itally", datetime.date(1987, 10, 07)) self.atriz3 = Famous("Julia Ben", "Canada", datetime.date(1947, 06, 07)) self.movie1 = Movie(1, "Dexter", 120, 1999, "Terror", self.director1.name, (self.atriz1.name, self.actor1.name), "21/05/2001") self.movie2 = Movie(2, "Scott Pilgrim Contra o Mundo", 112, 2010, "Acao", self.director2.name, (self.actor2.name, self.atriz2.name), "21/12/2010") self.movie3 = Movie(3, "Fix", 120, 1999, "Terror", self.director1.name, (self.atriz3.name, self.actor1.name), "21/05/2001") self.movie4 = Movie(4, "This Ones", 120, 1999, "Terror", self.director3.name, (self.atriz1.name, self.actor1.name), "21/05/2001") self.copy1 = Copy(1, self.movie1.number, "bom") self.copy2 = Copy(2, self.movie2.number, "bom") self.copy3 = Copy(3, self.movie3.number, "bom") self.copy4 = Copy(21, self.movie1.number, "mau") self.copy5 = Copy(22, self.movie1.number, "mau") self.copy6 = Copy(23, self.movie1.number, "bom") self.copy7 = Copy(31, self.movie2.number, "bom") self.copy8 = Copy(32, self.movie2.number, "mau") self.copy9 = Copy(5, self.movie4.number, "bom") self.rent1 = Rent(1, self.associate1.registration, self.copy1.concine_code, datetime.datetime(2011, 05, 20, 14, 20)) self.rent1.close(datetime.datetime(2011, 05, 22, 14, 20)) self.rent2 = Rent(2, self.associate1.registration, self.copy2.concine_code, datetime.datetime(2011, 05, 20, 14, 20)) self.rent2.close(datetime.datetime(2011, 05, 22, 14, 20)) self.rent3 = Rent(3, self.associate1.registration, self.copy3.concine_code, datetime.datetime(2011, 05, 20, 14, 20)) self.rent3.close(datetime.datetime(2011, 05, 22, 14, 20)) self.rent4 = Rent(4, self.associate2.registration, self.copy6.concine_code, datetime.datetime(2011, 05, 20, 14, 30)) self.rent4.close(datetime.datetime(2011, 05, 24, 14, 30)) self.rent5 = Rent(5, self.associate2.registration, self.copy7.concine_code, datetime.datetime(2011, 05, 20, 14, 30)) self.rent5.close(datetime.datetime(2011, 05, 22, 14, 30)) def test_add_associates(self): self.associate1.name |should| equal_to("Beltrano Astrobaldo da Silva") self.associate1.adress |should| equal_to("Av. pelinca, 245") self.associate1.phone |should| equal_to("22-88779966") self.associate1.registration |should| equal_to(1) self.associate2.name |should| equal_to("Bensocriol da Silva Sauro") self.associate2.adress |should| equal_to("Rua dos Bobos, 0") self.associate2.phone |should| equal_to("22-23456789") self.associate2.registration |should| equal_to(2) def test_add_famous(self): self.director1.name |should| equal_to("Fulano M.") self.director1.country |should| equal_to("Germany") self.director1.birth_date |should| equal_to(datetime.date(1967, 06, 07)) self.director2.name |should| equal_to("Edgar Wright") self.director2.country |should| equal_to("England") self.director2.birth_date |should| equal_to(datetime.date(1967, 05, 07)) self.director3.name |should| equal_to("Abelardo D.") self.director3.country |should| equal_to("Brazil") self.director3.birth_date |should| equal_to(datetime.date(1967, 07, 07)) self.actor1.name |should| equal_to("Michael C. Hall") self.actor1.country |should| equal_to("Brazil") self.actor1.birth_date |should| equal_to(datetime.date(1987, 06, 07)) self.actor2.name |should| equal_to("Michael Cera") self.actor2.country |should| equal_to("Itally") self.actor2.birth_date |should| equal_to(datetime.date(1957, 06, 07)) self.atriz1.name |should| equal_to("Julia Styles") self.atriz1.country |should| equal_to("Germany") self.atriz1.birth_date |should| equal_to(datetime.date(1967, 06, 07)) self.atriz2.name |should| equal_to("Mary Elizabeth Winstead") self.atriz2.country |should| equal_to("Itally") self.atriz2.birth_date |should| equal_to(datetime.date(1987, 10, 07)) self.atriz3.name |should| equal_to("Julia Ben") self.atriz3.country |should| equal_to("Canada") self.atriz3.birth_date |should| equal_to(datetime.date(1947, 06, 07)) def test_add_movies(self): self.movie1.title |should| equal_to("Dexter") self.movie1.length |should| equal_to(120) self.movie1.year |should| equal_to(1999) self.movie1.genre |should| equal_to("Terror") self.movie1.director |should| equal_to(self.director1.name) self.movie1.actors |should| equal_to((self.atriz1.name, self.actor1.name)) self.movie1.acquisition_date |should| equal_to("21/05/2001") self.movie1.number |should| equal_to(1) self.movie2.number |should| equal_to(2) self.movie2.title |should| equal_to("Scott Pilgrim Contra o Mundo") self.movie2.length |should| equal_to(112) self.movie2.year |should| equal_to(2010) self.movie2.genre |should| equal_to("Acao") self.movie2.director |should| equal_to(self.director2.name) self.movie2.actors |should| equal_to((self.actor2.name, self.atriz2.name)) self.movie2.acquisition_date |should| equal_to("21/12/2010") self.movie3.number |should| equal_to(3) self.movie3.title |should| equal_to("Fix") self.movie3.length |should| equal_to(120) self.movie3.year |should| equal_to(1999) self.movie3.genre |should| equal_to("Terror") self.movie3.director |should| equal_to(self.director1.name) self.movie3.actors |should| equal_to((self.atriz3.name, self.actor1.name)) self.movie3.acquisition_date |should| equal_to("21/05/2001") self.movie4.number |should| equal_to(4) self.movie4.title |should| equal_to("This Ones") self.movie4.length |should| equal_to(120) self.movie4.year |should| equal_to(1999) self.movie4.genre |should| equal_to("Terror") self.movie4.director |should| equal_to(self.director3.name) self.movie4.actors |should| equal_to((self.atriz1.name, self.actor1.name)) self.movie4.acquisition_date |should| equal_to("21/05/2001") def test_add_copies(self): self.copy1.concine_code |should| equal_to(1) self.copy1.movie_code |should| equal_to(self.movie1.number) self.copy1.quality |should| equal_to("bom") self.copy2.concine_code |should| equal_to(2) self.copy2.movie_code |should| equal_to(self.movie2.number) self.copy2.quality |should| equal_to("bom") self.copy3.concine_code |should| equal_to(3) self.copy3.movie_code |should| equal_to(self.movie3.number) self.copy3.quality |should| equal_to("bom") self.copy4.concine_code |should| equal_to(21) self.copy4.movie_code |should| equal_to(self.movie1.number) self.copy4.quality |should| equal_to("mau") self.copy5.concine_code |should| equal_to(22) self.copy5.movie_code |should| equal_to(self.movie1.number) self.copy5.quality |should| equal_to("mau") self.copy6.concine_code |should| equal_to(23) self.copy6.movie_code |should| equal_to(self.movie1.number) self.copy6.quality |should| equal_to("bom") self.copy7.concine_code |should| equal_to(31) self.copy7.movie_code |should| equal_to(self.movie2.number) self.copy7.quality |should| equal_to("bom") self.copy8.concine_code |should| equal_to(32) self.copy8.movie_code |should| equal_to(self.movie2.number) self.copy8.quality |should| equal_to("mau") self.copy9.concine_code |should| equal_to(5) self.copy9.movie_code |should| equal_to(self.movie4.number) self.copy9.quality |should| equal_to("bom") def test_rent_copy(self): self.rent1.code |should| equal_to(1) self.rent1.associate_registration |should| equal_to(self.associate1.registration) self.rent1.copy_concine_code |should| equal_to(self.copy1.concine_code) self.rent1.rent_date |should| equal_to(datetime.datetime(2011, 05, 20, 14, 20)) self.rent2.code |should| equal_to(2) self.rent2.associate_registration |should| equal_to(self.associate1.registration) self.rent2.copy_concine_code |should| equal_to(self.copy2.concine_code) self.rent2.rent_date |should| equal_to(datetime.datetime(2011, 05, 20, 14, 20)) self.rent3.code |should| equal_to(3) self.rent3.associate_registration |should| equal_to(self.associate1.registration) self.rent3.copy_concine_code |should| equal_to(self.copy3.concine_code) self.rent3.rent_date |should| equal_to(datetime.datetime(2011, 05, 20, 14, 20)) self.rent4.code |should| equal_to(4) self.rent4.associate_registration |should| equal_to(self.associate2.registration) self.rent4.copy_concine_code |should| equal_to(self.copy6.concine_code) self.rent4.rent_date |should| equal_to(datetime.datetime(2011, 05, 20, 14, 30)) self.rent5.code |should| equal_to(5) self.rent5.associate_registration |should| equal_to(self.associate2.registration) self.rent5.copy_concine_code |should| equal_to(self.copy7.concine_code) self.rent5.rent_date |should| equal_to(datetime.datetime(2011, 05, 20, 14, 30)) def test_return_copy(self): self.rent1.close_date |should| equal_to(datetime.datetime(2011, 05, 22, 14, 20)) self.rent1.value |should| equal_to(3.00) self.rent2.close_date |should| equal_to(datetime.datetime(2011, 05, 22, 14, 20)) self.rent2.value |should| equal_to(3.00) self.rent3.close_date |should| equal_to(datetime.datetime(2011, 05, 22, 14, 20)) self.rent3.value |should| equal_to(3.00) self.rent5.close_date |should| equal_to(datetime.datetime(2011, 05, 22, 14, 30)) self.rent5.value |should| equal_to(3.00) def test_return_delayed(self): self.rent4.close_date |should| equal_to(datetime.datetime(2011, 05, 24, 14, 30)) self.rent4.value |should| equal_to(4.00) def test_view_rents(self): rents = Rent.view_all() rents.sort() |should| equal_to([ [1, datetime.datetime(2011, 5, 20, 14, 20), datetime.datetime(2011, 5, 22, 14, 20), 3.0], [1, datetime.datetime(2011, 5, 20, 14, 20), datetime.datetime(2011, 5, 22, 14, 20), 3.0], [1, datetime.datetime(2011, 5, 20, 14, 20), datetime.datetime(2011, 5, 22, 14, 20), 3.0], [2, datetime.datetime(2011, 5, 20, 14, 30), datetime.datetime(2011, 5, 24, 14, 30), 4.0], [2, datetime.datetime(2011, 5, 20, 14, 30), datetime.datetime(2011, 5, 22, 14, 30), 3.0] ].sort()) def test_find_movies_by_actor(self): search = Movie.search(self.atriz1.name) search |should| equal_to(['Dexter', 'This Ones']) search = Movie.search("July Styles") search |should| equal_to([]) def test_find_movies_by_genre(self): search = Movie.search("Terror") search |should| equal_to(['Dexter', 'Fix', 'This Ones']) search = Movie.search("Lapela") search |should| equal_to([]) def test_find_movies_by_director(self): search = Movie.search(self.director1.name) search |should| equal_to(['Dexter', 'Fix']) search = Movie.search("Brasil") search |should| equal_to([]) def test_list_of_movies(self): movies = Movie.list_all() movies |should| equal_to({'Dexter': 4, 'Scott Pilgrim Contra o Mundo': 3, 'This Ones': 1, 'Fix': 1}) def test_bad_copies(self): bad_copies = Copy.list_bad_copies() bad_copies.sort() |should| equal_to([("Dexter", 2, (21,22)), ("Scott Pilgrim Contra o Mundo", 1, (32))].sort()) def test_associate_with_delays(self): overdues_associates = Associate.list_overdue_associates() overdues_associates |should| equal_to({'Bensocriol da Silva Sauro': [4]})