コード例 #1
0
    def test_SCP(self, popenMock):
        params = SharedState("root", "123", "sshkey_file", "scriptDir",
                             "bootdir", "setupAgentFile", "ambariServer",
                             "centos6", "1.2.1", "8440", "root")
        host_log_mock = MagicMock()
        log = {'text': ""}

        def write_side_effect(text):
            log['text'] = log['text'] + text

        host_log_mock.write.side_effect = write_side_effect
        scp = SCP(params.user, params.sshPort, params.sshkey_file,
                  "dummy-host", "src/file", "dst/file", params.bootdir,
                  host_log_mock)
        log_sample = "log_sample"
        error_sample = "error_sample"
        # Successful run
        process = MagicMock()
        popenMock.return_value = process
        process.communicate.return_value = (log_sample, error_sample)
        process.returncode = 0

        retcode = scp.run()

        self.assertTrue(popenMock.called)
        self.assertTrue(log_sample in log['text'])
        self.assertTrue(error_sample in log['text'])
        command_str = str(popenMock.call_args[0][0])
        self.assertEquals(
            command_str, "['scp', '-r', '-o', 'ConnectTimeout=60', '-o', "
            "'BatchMode=yes', '-o', 'StrictHostKeyChecking=no', '-P', '123', '-i', 'sshkey_file',"
            " 'src/file', 'root@dummy-host:dst/file']")
        self.assertEqual(retcode["exitstatus"], 0)

        log['text'] = ""
        #unsuccessfull run
        process.returncode = 1

        retcode = scp.run()

        self.assertTrue(log_sample in log['text'])
        self.assertTrue(error_sample in log['text'])
        self.assertEqual(retcode["exitstatus"], 1)
コード例 #2
0
  def test_SCP(self, popenMock):
    params = SharedState("root", "sshkey_file", "scriptDir", "bootdir",
                                  "setupAgentFile", "ambariServer", "centos6",
                                  "1.2.1", "8440", "root")
    host_log_mock = MagicMock()
    log = {'text': ""}
    def write_side_effect(text):
      log['text'] = log['text'] + text

    host_log_mock.write.side_effect = write_side_effect
    scp = SCP(params.user, params.sshkey_file, "dummy-host", "src/file",
              "dst/file", params.bootdir, host_log_mock)
    log_sample = "log_sample"
    error_sample = "error_sample"
    # Successful run
    process = MagicMock()
    popenMock.return_value = process
    process.communicate.return_value = (log_sample, error_sample)
    process.returncode = 0

    retcode = scp.run()

    self.assertTrue(popenMock.called)
    self.assertTrue(log_sample in log['text'])
    self.assertTrue(error_sample in log['text'])
    command_str = str(popenMock.call_args[0][0])
    self.assertEquals(command_str, "['scp', '-r', '-o', 'ConnectTimeout=60', '-o', "
        "'BatchMode=yes', '-o', 'StrictHostKeyChecking=no', '-i', 'sshkey_file',"
        " 'src/file', 'root@dummy-host:dst/file']")
    self.assertEqual(retcode["exitstatus"], 0)

    log['text'] = ""
    #unsuccessfull run
    process.returncode = 1

    retcode = scp.run()

    self.assertTrue(log_sample in log['text'])
    self.assertTrue(error_sample in log['text'])
    self.assertEqual(retcode["exitstatus"], 1)