在Python

时间:2018-03-23 18:57:32

标签: python testing sftp

我之前问了一个关于模拟和测试的问题,它帮助我完成了测试的所有方面。如何测试SFTP连接。

我有一个方法:

def _transfer_file(self, my_file):
  try:
    with pysftp.Connection(‘host’, username=username, password=password) as sftp:
      sftp.put(my_file)
      sftp.close()
      return True

   except Exception as e:
      # log an error with exception
      return None

我的问题是如何测试该特定方法?我认为简单验证连接是否可以成功打开就足够了但我该怎么做?我的测试最终会发送“my_file”,我真的不想这样做。

我怀疑我需要使用@ mock.patch(某物)伪造连接?我不太确定。有没有人对如何测试这种情况有任何建议?

1 个答案:

答案 0 :(得分:0)

我的解决方案是不要模仿任何东西,而是改变我的方法如下:

try:
    with pysftp.Connection(‘host’, username=username, password=password) as sftp:
      if(my_file):
        sftp.put(my_file)
      sftp.close()
      return True

然后在测试中我只为my_file值提供'None'。这将打开连接然后关闭它而不做任何事情,但让我测试该开放的成功。