Beispiel #1
0
class TestAirport(unittest.TestCase):
    def setUp(self):
        self.airport = Airport()
        self.plane = Mock()
        self.weather = Mock()

    # SAFE
    @patch('airport.Airport.is_safe', return_value=True)
    def test_is_safe_True(self, is_safe):
        self.assertTrue(self.airport.is_safe())

    # NOT SAFE
    @patch('airport.Airport.is_safe', return_value=False)
    def test_is_safe_False(self, is_safe):
        self.assertFalse(self.airport.is_safe())

    # SAFE TO LAND
    @patch('airport.Airport.is_safe', return_value=True)
    def test_is_safe_to_land_True(self, is_safe):
        self.airport.landing(self.plane)
        self.assertIn(self.plane, self.airport.hangar)

    # SAFE TO LAND BUT NO MORE SPACES
    @patch('airport.Airport.is_safe', return_value=True)
    def test_is_safe_to_land_but_no_more_space_True(self, is_safe):
        for i in range(0, 20):
            plane = Mock()
            self.airport.landing(plane)
        with self.assertRaisesRegexp(Exception, 'No more space avaialble!'):
            self.airport.landing(self.plane)

    # SAFE TO LAND BUT ALREADY LANDED
    @patch('airport.Airport.is_safe', return_value=True)
    def test_is_safe_to_land_but_landed(self, is_safe):
        self.airport.landing(self.plane)
        with self.assertRaisesRegexp(Exception, 'Plane already in the hangar'):
            self.airport.landing(self.plane)

    # NOT SAFE TO LAND
    @patch('airport.Airport.is_safe', return_value=False)
    def test_is_safe_to_land_False(self, is_safe):
        with self.assertRaisesRegexp(Exception, 'Too dangerous to land!'):
            self.airport.landing(self.plane)

    # SAFE TO TAKE OFF
    @patch('airport.Airport.is_safe', return_value=True)
    def test_is_safe_to_take_off_True(self, is_safe):
        self.airport.landing(self.plane)
        self.airport.take_off(self.plane)
        self.assertNotIn(self.plane, self.airport.hangar)

    # NOT SAFE TO TAKE OFF
    @patch('airport.Airport.is_safe', return_value=False)
    def test_is_safe_to_take_off_False(self, is_safe):
        with self.assertRaisesRegexp(Exception, 'Too dangerous to fly!'):
            self.airport.take_off(self.plane)