Ejemplo n.º 1
0
    def test_process_pallets_mixed_bag(self):
        pallet1 = Mock(Pallet)('one')
        pallet1.is_ready_to_ship = Mock(return_value=True)
        pallet1.requires_processing = Mock(return_value=False)
        pallet1.success = (True, )

        pallet2 = Mock(Pallet)('two')
        pallet2.is_ready_to_ship = Mock(return_value=False)
        pallet2.requires_processing = Mock(return_value=False)
        pallet2.success = (True, )

        pallet3 = Mock(Pallet)('three')
        pallet3.is_ready_to_ship = Mock(return_value=True)
        pallet3.requires_processing = Mock(return_value=True)
        pallet3.success = (True, )

        lift.process_pallets([pallet1, pallet2, pallet3])

        pallet1.ship.assert_called_once()
        pallet1.process.assert_not_called()
        pallet2.ship.assert_not_called()
        pallet2.process.assert_not_called()
        pallet3.ship.assert_called_once()
        pallet3.process.assert_called_once()

        pallet = self.PalletMock()
        process_error = Exception('process error')
        pallet.process.side_effect = process_error
        pallet.success = (True, )

        lift.process_pallets([pallet])

        self.assertEqual(pallet.success, (False, process_error))
Ejemplo n.º 2
0
    def test_process_pallets_mixed_bag(self):
        pallet1 = Mock(Pallet)('one')
        pallet1.is_ready_to_ship = Mock(return_value=True)
        pallet1.requires_processing = Mock(return_value=False)
        pallet1.success = (True,)

        pallet2 = Mock(Pallet)('two')
        pallet2.is_ready_to_ship = Mock(return_value=False)
        pallet2.requires_processing = Mock(return_value=False)
        pallet2.success = (True,)

        pallet3 = Mock(Pallet)('three')
        pallet3.is_ready_to_ship = Mock(return_value=True)
        pallet3.requires_processing = Mock(return_value=True)
        pallet3.success = (True,)

        lift.process_pallets([pallet1, pallet2, pallet3])

        pallet1.ship.assert_called_once()
        pallet1.process.assert_not_called()
        pallet2.ship.assert_not_called()
        pallet2.process.assert_not_called()
        pallet3.ship.assert_called_once()
        pallet3.process.assert_called_once()

        pallet = self.PalletMock()
        pallet.process.side_effect = Exception('process error')
        pallet.success = (True,)

        lift.process_pallets([pallet])

        self.assertEqual(pallet.success, (False, 'process error'))
Ejemplo n.º 3
0
    def test_process_pallets_all_ready_to_ship(self):
        ready_pallet = self.PalletMock()
        ready_pallet.is_ready_to_ship.return_value = True
        ready_pallet.success = (True, )

        lift.process_pallets([ready_pallet, ready_pallet])

        self.assertEqual(ready_pallet.ship.call_count, 2)
Ejemplo n.º 4
0
    def test_process_pallets_all_ready_to_ship(self):
        ready_pallet = self.PalletMock()
        ready_pallet.is_ready_to_ship.return_value = True
        ready_pallet.success = (True,)

        lift.process_pallets([ready_pallet, ready_pallet])

        self.assertEqual(ready_pallet.ship.call_count, 2)
Ejemplo n.º 5
0
    def test_process_pallets_handles_ship_exception(self):
        pallet = self.PalletMock()
        pallet.ship.side_effect = Exception('ship error')
        pallet.success = (True,)

        lift.process_pallets([pallet])

        self.assertEqual(pallet.success, (False, 'ship error'))
Ejemplo n.º 6
0
    def test_process_pallets_handles_ship_exception(self):
        pallet = self.PalletMock()
        ship_error = Exception('ship error')
        pallet.ship.side_effect = ship_error
        pallet.success = (True, )

        lift.process_pallets([pallet])

        self.assertEqual(pallet.success, (False, ship_error))
Ejemplo n.º 7
0
    def test_process_pallets_resets_arcpy(self):
        pallet = self.PalletMock()
        pallet2 = Mock(Pallet)

        import arcpy

        def modify_workspace(value):
            arcpy.env.workspace = value

        pallet.ship.side_effect = modify_workspace('forklift')
        pallet.success = (True, )

        self.assertEqual(arcpy.env.workspace, 'forklift')

        pallet2.success = (True, )

        lift.process_pallets([pallet, pallet2])

        self.assertEqual(arcpy.env.workspace, None)
Ejemplo n.º 8
0
    def test_process_pallets_resets_arcpy(self):
        pallet = self.PalletMock()
        pallet2 = Mock(Pallet)

        import arcpy

        def modify_workspace(value):
            arcpy.env.workspace = value

        pallet.ship.side_effect = modify_workspace('forklift')
        pallet.success = (True,)

        self.assertEqual(arcpy.env.workspace, 'forklift')

        pallet2.success = (True,)

        lift.process_pallets([pallet, pallet2])

        self.assertEqual(arcpy.env.workspace, None)
Ejemplo n.º 9
0
    def test_process_pallets_post_copy(self):
        pallet1 = Mock(Pallet)('one')
        pallet1.is_ready_to_ship = Mock(return_value=True)
        pallet1.requires_processing = Mock(return_value=False)
        pallet1.success = (True, )

        pallet2 = Mock(Pallet)('two')
        pallet2.is_ready_to_ship = Mock(return_value=False)
        pallet2.requires_processing = Mock(return_value=False)
        pallet2.success = (True, )

        pallet3 = Mock(Pallet)('three')
        pallet3.is_ready_to_ship = Mock(return_value=True)
        pallet3.requires_processing = Mock(return_value=True)
        pallet3.success = (True, )

        lift.process_pallets([pallet1, pallet2, pallet3], is_post_copy=True)

        pallet1.post_copy_process.assert_not_called()
        pallet2.post_copy_process.assert_not_called()
        pallet3.post_copy_process.assert_called_once()
Ejemplo n.º 10
0
    def test_process_pallets_post_copy(self):
        pallet1 = Mock(Pallet)('one')
        pallet1.is_ready_to_ship = Mock(return_value=True)
        pallet1.requires_processing = Mock(return_value=False)
        pallet1.success = (True,)

        pallet2 = Mock(Pallet)('two')
        pallet2.is_ready_to_ship = Mock(return_value=False)
        pallet2.requires_processing = Mock(return_value=False)
        pallet2.success = (True,)

        pallet3 = Mock(Pallet)('three')
        pallet3.is_ready_to_ship = Mock(return_value=True)
        pallet3.requires_processing = Mock(return_value=True)
        pallet3.success = (True,)

        lift.process_pallets([pallet1, pallet2, pallet3], is_post_copy=True)

        pallet1.post_copy_process.assert_not_called()
        pallet2.post_copy_process.assert_not_called()
        pallet3.post_copy_process.assert_called_once()