class ZooTests(unittest.TestCase): def setUp(self): self.tiger = Animal('tiger', 2, 'Pesho', 'male', 100) self.lion = Animal('lion', 5, 'Gosho', 'female', 120) self.goat = Animal('goat', 3, 'Kolio', 'male', 80) self.zoo = Zoo([self.tiger, self.lion, self.goat], 1000, 100000, 'Zoo') def test_zoo_get_animals(self): self.assertEqual([self.tiger, self.lion, self.goat], self.zoo.get_animals()) def test_zoo_get_capacity(self): self.assertEqual(1000, self.zoo.get_capacity()) def test_zoo_get_budget(self): self.assertEqual(100000, self.zoo.get_budget()) def test_zoo_get_name(self): self.assertEqual('Zoo', self.zoo.get_name()) @unittest.skip("Skip this.") def test_zoo_save(self): self.zoo.save() def test_zoo_income(self): self.assertEqual(180, self.zoo.daily_income()) def test_accomodate(self): self.zoo.accomodate(self.tiger) self.zoo.accomodate(self.lion) self.zoo.accomodate(self.goat) def test_daily_outcome(self): self.assertEqual(101, self.zoo.daily_outcome()) def test_simulate_period_of_time(self): self.zoo.simulate_time('months', 10) self.assertEqual(123700, self.zoo.get_budget())
def main(): myzoo = Zoo() create_animal_table(cursor) while True: command = input('>>>') if command == 'list_animals' or command == 'l': see_animals(myzoo, cursor) elif command == 'simulate' or command == 's': interval = int(input('Enter interval of time in days:')) period = int(input('Enter period:')) for x in range (period): simulate(myzoo, interval, period, cursor) elif command == 'accommodate' or command == 'a': if myzoo.count_animals(cursor) >= myzoo.get_capacity(): print("Your zoo is full") print(myzoo.count_animals(cursor)) species = input('Enter species:') name = input('Enter name:') age = input('Enter age:') weight = input('Enter weight:') myzoo.accommodate(species, name, age, weight, cursor) conn.commit() elif command == 'move_to_habitat' or command == 'move': name = input('Name:') myzoo.move_to_habitat(name, cursor) print(name + ' has gone home!') conn.commit() elif command == 'exit': break conn.commit() conn.close()
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)