class Test_Zoo(unittest.TestCase): def setUp(self): self.zoo = Zoo([], 10, 30) self.animal = Animal("name", 18, "male", 87, "species", 10, "meat", 9, 20, 100, 200, 20) self.animal1 = Animal("name1", 18, "female", 87, "species", 10, "meat", 9, 20, 100, 200, 20) self.zoo.accommodate_animal(self.animal) self.zoo.accommodate_animal(self.animal1) def test_init(self): self.assertEqual(self.zoo.animals, [self.animal, self.animal1]) self.assertEqual(self.zoo.capacity, 10) self.assertEqual(self.zoo.budget, 30) def test_accommodate_animal(self): output = [self.animal, self.animal1] result = self.zoo.animals self.assertEqual(output, result) def test_daily_incomes(self): self.animal2 = Animal("name", 18, "male", 87, "species", 10, "meat", 9, 20, 100, 200, 20) output = 120 result = self.zoo.get_daily_incomes() self.assertEqual(output, result) def test_daily_outcomes(self): output = 8 result = self.zoo.get_daily_outcomes() self.assertEqual(output, result) def test_reproduction(self): self.zoo.animal_reproduce() self.assertEqual(len(self.zoo.babies), 1) def test_list_of_pregnants_animal_when_reproduced(self): output = [self.animal1] self.zoo.animal_reproduce() self.assertEqual(output, self.zoo.pregnants) def test_if_mother_can_reproduce_before_reproduce_ban_expired(self): self.zoo.animal_reproduce() self.animal1.pregnancy_ban = 6 self.assertFalse(self.zoo.animal_reproduce())
class TestZoo(unittest.TestCase): """docstring for ZooTest""" def setUp(self): self.zoo = Zoo("Sofia", 2, 3000) def test_atributes(self): self.assertEqual("Sofia", self.zoo.get_name()) self.assertEqual(2, self.zoo.get_capacity()) self.assertEqual([], self.zoo.get_animals()) def test_accomodate_animal(self): self.zoo.accommodate_animal("tiger", 18, "Zyblyo", "male", 19) self.assertEqual(1, len(self.zoo.get_animals())) self.assertEqual(True, self.zoo.accommodate_animal("tiger", 18, "Anastasij", "male", 19)) def test_see_animals(self): self.zoo.accommodate_animal("tiger", 18, "Zyblyo", "male", 19) expected = "Zyblyo\t - tiger, age: 18 years, weight: 19 kg" result = self.zoo.see_animals() self.assertEqual(expected, result) def test_remove_animal(self): self.zoo.accommodate_animal("tiger", 18, "Zyblyo", "male", 19) self.zoo.remove_animal("tiger", "Zyblyo") self.assertEqual(0, len(self.zoo.get_animals())) def test_move_animal(self): self.zoo.accommodate_animal("tiger", 18, "Spiridon", "male", 19) self.zoo.move_animal("tiger", "Spiridon") self.assertEqual(0, len(self.zoo.get_animals())) def test_daily_incomes(self): self.zoo.accommodate_animal("tiger", 18, "Tsveta", "female", 19) self.zoo.accommodate_animal("tiger", 18, "Svetla", "female", 19) self.assertEqual(120, self.zoo.daily_incomes()) def test_daily_expenses(self): self.zoo.accommodate_animal("tiger", 18, "Zyblyo", "male", 19) self.assertEqual(19 * 0.06 * 4, self.zoo.daily_expenses()) def test_born_animal(self): self.zoo.accommodate_animal("tiger", 18, "Snejan", "male", 19) self.zoo.accommodate_animal("tiger", 18, "Spiridonka", "female", 19) self.zoo.born_animal("tiger", "Spiridonka") self.assertEqual(3, len(self.zoo.get_animals())) def test_ready_to_give_birth(self): self.zoo.accommodate_animal("tiger", 18, "Snejan", "male", 19) self.zoo.accommodate_animal("tiger", 18, "Spiridonka", "female", 19) self.zoo.born_animal("tiger", "Spiridonka") self.assertFalse(self.zoo.born_animal("tiger", "Spiridonka")) def test_update_animals_from_database(self): self.assertEqual(0, len(self.zoo.get_animals())) self.db = self.zoo.get_database() animal1 = Animal("lion", 24, "Svetla", "female", 150) self.db.insert_animal(animal1) self.zoo.__animals = self.zoo.update_animals_from_database() self.assertEqual(1, len(self.zoo.get_animals())) first_animal = self.zoo.get_animals()[0] self.assertTrue(isinstance(first_animal, Animal)) def tearDown(self): call("rm Sofia.db", shell=True)