pytest насмешливый с boto3 - PullRequest
       71

pytest насмешливый с boto3

0 голосов
/ 20 февраля 2019

просто изучаю насмешку над Python в целом и борюсь с использованием Magicmock и pytest с boto3.

Вот мой блок кода

   def upload_to_s3(self, local_file, bucket, dest_file):

        self.local_file = local_file
        self.bucket = bucket
        self.dest_file = dest_file

        s3_client = self.prime_s3_client() # this method returns the boto3 client
        try:
            s3_client.upload_file(local_file, bucket, dest_file)
            LOG_IT.info('File uploaded to S3 from: %s to %s.', local_file, dest_file)
        except Exception:
            LOG_IT.critical('The %s failed to upload to S3.', local_file)

Этот тест не работает:

def test_upload_to_s3(self, monkeypatch, aws):
        mock_s3_client = MagicMock()
        monkeypatch.setattr(boto3, 'client', mock_s3_client)
        mock_upload_file = MagicMock()
        monkeypatch.setattr(mock_s3_client, 'upload_file', mock_upload_file)
        push_to_s3 = aws.upload_to_s3('localfile', 'chumbucket', 'destfile')
        mock_upload_file.assert_called() 

Возвращенная ошибка: E AssertionError: Ожидается, что 'upload_file' был вызван.

Спасибо!

...