예제 #1
0
    def test_commit(self):
        #Arrange
        op = Operator()
        op.first_name = "monty"
        op.family_name = "python"
        op.date_of_birth = date(1990, 9, 30)
        op.drone_license = 2
        op.rescue_endorsement = True
        op.operations = 5
        opStore = OperatorStore()

        action = opStore.add(op)

        #Act
        if action.is_valid():
            action.commit()
        else:
            for i in action.messages:
                print(i)

        #Assert
        listy = []
        for i in opStore.list_all():
            listy.append(opStore.get(i))
        self.assertIn(op, listy)
예제 #2
0
 def add_operator(self):
     """ Starts a new operator and displays it in the list. """
     # Start a new operator instance
     print('FINISH: Start a new operator')
     operator = Operator()
     operator.first_name = ""
     operator.family_name = ""
     operator.drone_license = 1
     operator.rescue_endorsement = 1
     operator.operations = 0
     # Display the operator
     self.view_operator(operator, self._save_new_operator)
예제 #3
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())
예제 #4
0
    def test_fail_endorsement(self):
        # Arrange
        op = Operator()
        op.first_name = "Matthew"
        op.date_of_birth = date(1995, 12, 25)
        op.drone_license = 1
        op.rescue_endorsement = True
        store = OperatorStore()

        # Act
        act = store.add(op)

        # Assert
        self.assertFalse(act.is_valid())
예제 #5
0
    def edit_operator(self, event):
        # Retrieve the identifer of the drone
        item = self.tree.item(self.tree.focus())

        operator = Operator()
        name = item['values'][0].split()
        operator.first_name = name[0]
        operator.last_name = name[1]
        operator.drone_license = item['values'][1]
        operator.rescue_endorsement = item['values'][2]
        operator.number_of_operations = item['values'][3]
        #,item['values'][1], item['values'][2], item['values'][3]

        # Display the drone
        self.view_operator(operator, self._update_operator)
예제 #6
0
    def test_pass_all(self):
        # Arrange
        op = Operator()
        op.first_name = "Matthew"
        op.date_of_birth = date(1995, 12, 25)
        op.drone_license = 2
        op.rescue_endorsement = True
        op.operations = 5
        store = OperatorStore()

        # Act
        act = store.add(op)

        # Assert
        self.assertTrue(act.is_valid())
예제 #7
0
    def test_operatorInvalidDroneLicense(self):
        #Arrange
        op = Operator()
        op.first_name = "monty"
        op.date_of_birth = date(1990, 9, 30)
        op.rescue_endorsement = True
        op.operations = 5
        opStore = OperatorStore()

        #Act
        action = opStore.add(op)

        #Assert
        self.assertIsNone(op.drone_license)
        self.assertFalse(action.is_valid())
        self.assertIn("Drone license is required", action.messages)
예제 #8
0
    def test_add(self):
        # Arrange
        op = Operator()
        op.first_name = "Matthew"
        op.date_of_birth = date(1995, 12, 25)
        op.drone_license = 2
        op.rescue_endorsement = True
        op.operations = 5
        store = OperatorStore()

        # Act
        act = store.add(op)
        act.commit()

        # Assert
        self.assertEqual(store.get(1), op)
예제 #9
0
 def test_operatorStore_added_successfully(self):
     #Arrange
     op = Operator()
     op.first_name = "Afzal"
     op.family_name = "Rahim"
     dob = date(1974, 9, 12)
     op.date_of_birth = dob
     op.drone_license = 2
     op.rescue_endorsement = True
     op.operations = 6
     store = OperatorStore()
     
     #Act
     act = store.add(op)
     
     if act.is_valid():
         act.commit()
     #Assert
     #self.assertTrue(store.get(op.id), True, "Operator has not been added successfully")
     self.assertTrue(store.get(op.id))
예제 #10
0
    def test_operatorInvalidEndorsement(self):
        #Arrange
        op = Operator()
        op.first_name = "monty"
        op.date_of_birth = date(1990, 9, 30)
        op.drone_license = 2
        op.rescue_endorsement = True
        op.operations = 4
        opStore = OperatorStore()

        #Act
        action = opStore.add(op)

        #Assert
        if (op.rescue_endorsement):
            self.assertFalse(op.operations >= 5)
        self.assertFalse(action.is_valid())
        self.assertIn(
            "Operator should have been involved in five prior rescue operations to hold a rescue drone endorsement",
            action.messages)
예제 #11
0
 def test_operator_validation(self):
     #Arrange
     op = Operator()
     op.first_name = "Afzal"
     op.family_name = "Rahim"
     dob = date(1974, 9, 12)
     op.date_of_birth = dob
     op.drone_license = 2
     op.rescue_endorsement = True
     op.operations = 6
     store = OperatorStore()
     
     #Act
     act = store.add(op)
     
     #Assert
     if act.is_valid():
         act.commit()
     #print(act.messages)
     #print(store._operators)    
     self.assertTrue(act.is_valid())
예제 #12
0
    def test_operatorInvalidDL2(self):
        #Arrange
        op = Operator()
        op.first_name = "monty"
        op.rescue_endorsement = True
        op.operations = 5
        op.date_of_birth = date(2015, 9, 30)
        op.drone_license = 2
        opStore = OperatorStore()

        #Act
        action = opStore.add(op)

        #Assert
        if (op.drone_license == 2):
            self.assertFalse(
                date.today() - op.date_of_birth >= timedelta(7300))
        self.assertFalse(action.is_valid())
        self.assertIn(
            "Operator should be at least twenty to hold a class 2 license",
            action.messages)
예제 #13
0
 def test_dobError(self):
     #Arrange
     op = Operator()
     op.first_name = "Afzal"
     op.family_name = "Rahim"
     #dob = date(1974, 9, 12)
     #op.date_of_birth = dob
     op.drone_license = 2
     op.rescue_endorsement = True
     op.operations = 6
     store = OperatorStore()
     #action = OperatorAction(op, store._add(op))
 
     #Act
     act = store.add(op)
     
     #Assert
     if act.is_valid():
         act.commit()
     else:
         #self.assertIn('Date of birth is required', act.messages)
         self.assertEqual('Date of birth is required' in act.messages, False, 'Date of birth is required.')
예제 #14
0
 def test_rescueEndorsement_validity(self):
     #Arrange
     op = Operator()
     op.first_name = "Afzal"
     op.family_name = "Rahim"
     dob = date(1974, 9, 12)
     op.date_of_birth = dob
     op.drone_license = 2
     op.rescue_endorsement = True
     op.operations = 2
     store = OperatorStore()
     #action = OperatorAction(op, store._add(op))
     
     #Act
     act = store.add(op)
     
     #Assert
     if act.is_valid():
         act.commit()
     else:
         #self.assertIn('The operator must have been involved in five prior rescue operations.', act.messages)
         self.assertEqual('The operator must have been involved in five prior rescue operations' in act.messages, False, 'The operator must have been involved in five prior rescue operations.')
예제 #15
0
 def test_droneLicence_validity(self):
     #Arrange
     op = Operator()
     op.first_name = "Afzal"
     op.family_name = "Rahim"
     dob = date(2017, 9, 12)
     op.date_of_birth = dob
     op.drone_license = 2
     op.rescue_endorsement = True
     op.operations = 6
     store = OperatorStore()
     #action = OperatorAction(op, store._add(op))
     
     #Act
     act = store.add(op)
     
     #Assert
     if act.is_valid():
         act.commit()
     else:
         #self.assertIn('Operator should be at least twenty to hold a class 2 license', act.messages)
         self.assertEqual('Operator should be at least twenty to hold a class 2 license' in act.messages, False, 'Operator should be at least twenty to hold a class 2 license')
예제 #16
0
    def test_operatorValidity(self):
        #Arrange
        op = Operator()
        op.first_name = "monty"
        op.date_of_birth = date(1990, 9, 30)
        op.drone_license = 2
        op.rescue_endorsement = True
        op.operations = 5
        opStore = OperatorStore()

        #Act
        action = opStore.add(op)

        #Assert
        self.assertIsNotNone(op.first_name)
        self.assertIsNotNone(op.date_of_birth)
        self.assertIsNotNone(op.drone_license)
        if (op.drone_license == 2):
            self.assertTrue(date.today() - op.date_of_birth >= timedelta(7300))
        if (op.rescue_endorsement):
            self.assertTrue(op.operations >= 5)

        self.assertTrue(action.is_valid())