Sha256: 8dad8821eada5d9dd078ea196be84cfc23ee47e0b3012426e57878f90c65d5de

Contents?: true

Size: 1.88 KB

Versions: 2

Compression:

Stored size: 1.88 KB

Contents

require 'helper'

module SSHKit

  module Backend

    class ToSIoFormatter < StringIO
      extend Forwardable
      attr_reader :original_output
      def_delegators :@original_output, :read, :rewind
      def initialize(oio)
        @original_output = oio
      end
      def write(obj)
        original_output.write "> Executing #{obj}\n"
      end
    end

    class TestPrinter < UnitTest

      def block_to_run
        lambda do |host|
          within '/opt/sites/example.com' do
            execute 'date'
            execute :ls, '-l', '/some/directory'
            with rails_env: :production do
              within :tmp do
                as :root do
                  execute :touch, 'restart.txt'
                end
              end
            end
          end
        end
      end

      def printer
        Printer.new(Host.new(:'example.com'), &block_to_run)
      end

      def test_simple_printing
        sio = ToSIoFormatter.new(StringIO.new)
        SSHKit.capture_output(sio) do
          printer.run
        end
        sio.rewind
        result = sio.read
        assert_equal <<-EOEXPECTED.unindent, result
          > Executing if test ! -d /opt/sites/example.com; then echo "Directory does not exist '/opt/sites/example.com'" 1>&2; false; fi
          > Executing cd /opt/sites/example.com && /usr/bin/env date
          > Executing cd /opt/sites/example.com && /usr/bin/env ls -l /some/directory
          > Executing if test ! -d /opt/sites/example.com/tmp; then echo "Directory does not exist '/opt/sites/example.com/tmp'" 1>&2; false; fi
          > Executing if ! sudo su root -c whoami > /dev/null; then echo "You cannot switch to user 'root' using sudo, please check the sudoers file" 1>&2; false; fi
          > Executing cd /opt/sites/example.com/tmp && ( RAILS_ENV=production sudo su root -c /usr/bin/env touch restart.txt )
        EOEXPECTED
      end

    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sshkit-0.0.2 test/unit/backends/test_printer.rb
sshkit-0.0.1 test/unit/backends/test_printer.rb