def test_save_image_before_upload(self, _, api_upload_image, image_save):
        # Check if upload image is called after saving image to file.
        # If not, an exception will be raised.
        image_save.side_effect = (
            lambda *_: setattr(self, 'called_upload', True))

        api_upload_image.side_effect = (
            lambda *_:
                raise_(Exception()) if not getattr(self, 'called_upload', False)
                else None)

        pdu = UpgradeFaceSamples()

        # Init message
        message = UpgradeFaceSamplesFactory()
        pdu.process_message(message)
    def test_pdu_calls_betaface_api_with_correct_params(self, _, api_upload_image, image_save):
        pdu = UpgradeFaceSamples()

        # Init message
        message = UpgradeFaceSamplesFactory()

        # Validate message
        ok_(pdu.validate_message(message), "Message is valid")

        # Call tested methods
        pdu.process_message(message)

        image_save.assert_called_once_with(message['head_image']['image'],
                                           message['head_image']['width'],
                                           message['head_image']['height'],
                                           ANY)
        path = image_save.call_args_list[0][0][3]
        api_upload_image.assert_called_once_with(path, message['person_name'])