Iam writing pytest for method - def upload(type="", local_file=None, remote_file=None, target_config=None, verify_existence=True,throw_on_error=False): if not local_file or not target_config: return None logger = default_logger target_path = remote_file if remote_file else local_file pdir = os.path.dirname(target_path) cip = getattr( target_config, "address", None) or target_config.cip if verify_existence: target_check = "test -f '%s'" % target_path _, _, ret = ssh(ip=cip,command=[target_check],throw_on_error=False) if ret == 0: message = ("Target file %s(%s) already exists. " "Skipping upload" % (cip, target_path)) logger.info(message) return local_file else: message = ("Target file %s(%s) not present. Uploading file" % (cip, target_path)) logger.info(message) for _ in range(10): _, _, ret = ssh(ip=cip, command=["mkdir", "-p", pdir], throw_on_error=False) _, _, ret = scp( ip=cip,target_path=target_path,files=[local_file], log_on_error=True, throw_on_error=False, timeout=None) if ret == 0: return local_file else: message = ("Failed to upload %s(%s) to %s:%s" % (type, local_file, cip, target_path)) logger.error(message) if throw_on_error: raise Exception(message) My test case - - def test_upload(self): default_logger = self.mock.CreateMockAnything() pdir ="tmp/sample_path" local_file = "tmp/local_path" cip = "10.1.1.1" verify_existence=True objectName.ssh(cip, command=["test", "-f", 'tmp/sample_path'], throw_on_error=False).AndReturn(("", "",0)) self.mock.ReplayAll() result = objectName.upload( local_file= "tmp/local_path" , verify_existence=True) print(result) self.mock.VerifyAll() But it fails with :test_upload_local_file - mox3.mox.ExpectedMethodCallsError: Verify: Expected methods never called: and also return None as result, I want local_file as my output. What is wrong in my test case Continue reading...