示例#1
0
    def add(self, args):
        cursor = connection.cursor()
        if args is None:
            print('!! name is required !!')
        elif args[1] is None:
            print('!! class is required !!')
        else:
            dname = args[0]
            dclass = args[1][7]
            if args[2] is not None:
                DroneStore.add(
                    Drone(dname, class_type=int(dclass), rescue=true))
                query = 'select * from drone_info where drone_name = ' + dname + ' and class_type = ' + dclass + ' and rescue = "yes"'
                cursor.execute(query)
                records = cursor.fetchall()
                for row in records:
                    id = str(row[0])
                    print('Added rescue drone with ID 000' + id)
            else:
                DroneStore.add(
                    Drone(dname, class_type=int(dclass), rescue=false))
                query = 'select * from drone_info where drone_name = ' + dname + ' and class_type = ' + dclass
                cursor.execute(query)
                records = cursor.fetchall()
                for row in records:
                    id = str(row[0])
                    print('Added drone with ID 000' + id)

        raise Exception("Add method has not been implemented yet")
示例#2
0
    def test_only_one_drone(self):
        # Arrange
        dr = Drone("Test drone", class_type=1)
        op = Operator()
        op.first_name = "John"
        op.drone_license = 1
        op.drone = Drone("Yet another")
        store = DroneStore()

        # Act
        act = store.allocate(dr, op)
        # Assert
        self.assertFalse(act.is_valid())
        self.assertIn("Operator can only control one drone", act.messages)
示例#3
0
 def add_drone(self):
     """ Starts a new drone and displays it in the list."""
     # Start a new drone instance
     drone = Drone()
     
     # Display the drone
     self.view_drone(drone, self._save_new_drone)
示例#4
0
 def test_remove_exception(self):
     #arrange
     dr = Drone("Test drone", class_type=1)
     store = DroneStore()
     #assert
     with self.assertRaises(Exception):
         store.remove(dr)
示例#5
0
 def add_drone(self):
     """ Starts a new drone and displays it in the list. """
     # Start a new drone instance
     #print('TODO: Start a new drone')
     #drone = Drone(id, name, class_type, rescue, operator)
     drone = Drone(None)
     # Display the drone
     self.view_drone(drone, self._save_new_drone)
示例#6
0
    def add_drone(self):
        """ Starts a new drone and displays it in the list. """
        # Start a new drone instance
        print('FINISH: Start a new drone')
        drone = Drone("")

        # Display the drone
        self.view_drone(drone, self._save_new_drone)
示例#7
0
 def test_add_success(self):
     #arrange
     dr = Drone("Test drone", class_type=1)
     store = DroneStore()
     #act
     actual = store.add(dr)
     #assert
     self.assertIn(dr.id, store._drones)
示例#8
0
 def test_add_exception(self):
     #arrange
     dr = Drone("Test drone", class_type=1)
     store = DroneStore()
     #act
     actual = store.add(dr)
     #assert
     with self.assertRaises(Exception):
         store.add(dr)
示例#9
0
    def add_drone(self):
        """ Starts a new drone and displays it in the list. """
        # Start a new drone instance
        'TODO: Start a new drone'
        last_id = self.drones.get_max() + 1
        name = 'Drone' + str(last_id)
        drone = Drone(last_id + 1, name, 1, 0)

        # Display the drone
        self.view_drone(drone, self._save_new_drone)
示例#10
0
    def test_add_success(self):
        # Arrange
        dr = Drone("drone123")
        store = DroneStore()

        # Act
        store.add(dr)

        # Assert
        self.assertEqual(dr, store.get(dr.id))
示例#11
0
    def test_add_success(self):
        # Arrange
        dr = Drone("Test drone")
        store = DroneStore()

        # Act
        store.add(dr)

        # Assert
        self.assertEqual(store.get(1), dr)
示例#12
0
    def test_droneAddException(self):
        #Arrange
        store = DroneStore()
        dr = Drone("Dupe")

        store.add(dr)
        
        #Act and Assert
        with self.assertRaises(Exception):
            store.add(dr)
示例#13
0
    def test_droneRemoveException(self):
        #Arrange
        store = DroneStore()
        dr = Drone("Test")
        store.add(dr)
        
        store.remove(dr)

        #Act and Assert
        with self.assertRaises(Exception):
            store.remove(dr)
示例#14
0
    def test_droneRemove(self):
        #Arrange
        store = DroneStore()
        dr = Drone("Test")
        dr2 = Drone("Test2")
        dr3 = Drone("Test3")
        
        store.add(dr)
        store.add(dr2)
        
        #Act
        store.remove(dr2)

        #Assert
        listy = []
        for i in store.list_all():
            listy.append(store.get(i))

        self.assertIn(dr, listy)
        self.assertNotIn(dr2, listy)
示例#15
0
    def test_remove_success(self):
        # Arrange
        dr = Drone("drone123")
        store = DroneStore()

        # Act
        store.add(dr)
        store.remove(dr)

        # Assert
        self.assertNotIn(dr.id, store.list_all())
示例#16
0
    def test_remove_doesnt_exist(self):
        # Arrange
        dr = Drone("drone123")
        store = DroneStore()

        # Act
        with self.assertRaises(Exception) as ctx:
            store.remove(dr)

        # Assert
        self.assertEqual('Drone does not exist in store', str(ctx.exception))
示例#17
0
    def test_DroneStore_add_error(self):
        #Arrange
        dr = Drone("Test Drone")
        store = DroneStore()

        #Act
        act = store.add(dr)

        #Assert
        with self.assertRaises(Exception):
            store.add(dr)
示例#18
0
    def test_add_already_exists(self):
        # Arrange
        dr = Drone("drone123")
        store = DroneStore()

        # Act
        store.add(dr)
        with self.assertRaises(Exception) as ctx:
            store.add(dr)

        # Assert
        self.assertEqual('Drone already exists in store', str(ctx.exception))
示例#19
0
    def test_DroneStore_remove_error(self):
        dr = Drone("Test Drone")
        store = DroneStore()

        #Act
        #act = store.remove(dr)

        #Assert
        with self.assertRaises(Exception) as context:
            store.remove(dr)
        self.assertEqual("Drone does not exist in store",
                         str(context.exception))
示例#20
0
    def test_DroneStore_add(self):
        #Arrange
        dr = Drone("Test Drone")
        store = DroneStore()

        #Act
        act = store.add(dr)
        #print(dr.id in store.list_all()) used to test output

        #Assert
        self.assertEqual(dr.id in store.list_all(), True,
                         "Drone has not been added successfully")
示例#21
0
    def test_remove_fail(self):
        # Arrange
        dr = Drone("Test drone")
        store = DroneStore()
        errorText = 'Drone does not exist in store'

        # Act
        try:
            store.remove(dr)

        # Assert
        except Exception as ex:
            self.assertEqual(str(ex), errorText)
示例#22
0
    def test_allocate_success(self):
        # Arrange
        dr = Drone("Test drone", class_type=1)
        op = Operator()
        op.first_name = "John"
        op.drone_license = 1
        store = DroneStore()

        # Act
        act = store.allocate(dr, op)

        # Assert
        self.assertTrue(act.is_valid())
示例#23
0
    def test_add_fail(self):
        # Arrange
        dr = Drone("Test drone")
        store = DroneStore()
        errorText = 'Drone already exists in store'

        # Act
        try:
            store.add(dr)
            store.add(dr)

        # Assert
        except Exception as ex:
            self.assertEqual(str(ex), errorText)
    def test_holds_correct_license(self):
        # Arrange
        dr = Drone("Test drone", class_type=2)
        op = Operator()
        op.first_name = "John"
        op.drone_license = 1
        store = DroneStore()

        # Act
        act = store.allocate(dr, op)

        # Assert
        self.assertFalse(act.is_valid())
        self.assertIn("Operator does not have correct drone license", act.messages)
    def test_has_rescue_endorsement(self):
        # Arrange
        dr = Drone("Test drone", rescue=True)
        op = Operator()
        op.first_name = "John"
        op.drone_license = 1
        store = DroneStore()

        # Act
        act = store.allocate(dr, op)

        # Assert
        self.assertFalse(act.is_valid())
        self.assertIn("Operator does not have rescue endorsement", act.messages)
示例#26
0
    def test_has_rescue_endorsement_success(self):
        # Arrange
        dr = Drone("Test drone", rescue=True)
        op = Operator()
        op.first_name = "John"
        op.drone_license = 1
        op.rescue_endorsement = True
        store = DroneStore()

        # Act
        act = store.allocate(dr, op)

        # Assert
        self.assertTrue(act.is_valid())
示例#27
0
    def test_droneAdd(self):
        # Arrange
        dr = Drone("Tester")
        dr2 = Drone("Tester2")
        dr3 = Drone("Tester3")
        dr4 = Drone("Tester3")
        store = DroneStore()

        #Act
        store.add(dr)
        store.add(dr2)
        store.add(dr3)

        listy = []
        
        #Assert
        for i in store.list_all():
            listy.append(store.get(i))

        self.assertIn(dr, listy)
        self.assertIn(dr2, listy)
        self.assertIn(dr3, listy)
        self.assertNotIn(dr4, listy)
示例#28
0
    def test_commit(self):
        # Arrange
        dr = Drone("Test drone", class_type=1)
        op = Operator()
        op.first_name = "John"
        op.drone_license = 1
        store = DroneStore()

        # Act
        act = store.allocate(dr, op)
        act.commit()

        # Assert
        self.assertEquals(dr.operator, op)
        self.assertEquals(op.drone, dr)
示例#29
0
 def edit_drone(self, event):
     """ Retrieves the drone and shows it in the editor. """
     # Retrieve the identifer of the drone
     item = self.tree.item(self.tree.focus())
     item_id = item['values'][0]
     drone = Drone()
     # Load the drone from the store
     #print('TODO: Load drone with ID %04d' % (item_id))
     #drone = Drone(item['values'][0],item['values'][1], item['values'][2], item['values'][3])
     drone.id = item['values'][0]
     #print(drone.id)
     drone.name = item['values'][1]
     #print(drone.name)
     drone.class_type = item['values'][2]
     #print(drone.class_type)
     drone.rescue = item['values'][3]
     #print(drone.rescue)
     drone.operatorID = item['values'][4]
     # Display the drone
     self.view_drone(drone, self._update_drone)
示例#30
0
from drones import Drone

fuel = 18
max_speed = 60
refuel_quantity = 15
drone = Drone(fuel, max_speed)

print("Current fuel is " + str(drone.get_fuel()))
print("Current speed is " + str(drone.get_speed()))
drone.add_fuel(refuel_quantity)
print("Now the fuel is " + str(drone.get_fuel()))
drone.set_speed(55)
print("Current speed is " + str(drone.get_speed()))
drone.fly()