aruba 0.9.0.pre → 0.9.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -3
  3. data/History.md +61 -19
  4. data/README.md +10 -6
  5. data/TODO.md +6 -1
  6. data/cucumber.yml +10 -6
  7. data/features/.nav +72 -0
  8. data/features/announce.feature +203 -0
  9. data/features/api/command/extract_text.feature +10 -0
  10. data/features/api/command/run.feature +6 -6
  11. data/features/api/command/stop_all_commands.feature +53 -0
  12. data/features/api/command/terminate_all_commands.feature +53 -0
  13. data/features/api/command/unescape_text.feature +12 -0
  14. data/features/api/command/which.feature +3 -3
  15. data/features/api/core/expand_path.feature +4 -4
  16. data/features/api/environment/append_environment_variable.feature +18 -8
  17. data/features/api/environment/prepend_environment_variable.feature +18 -8
  18. data/features/api/environment/set_environment_variable.feature +33 -16
  19. data/features/api/filesystem/cd.feature +23 -13
  20. data/features/api/filesystem/create_directory.feature +2 -2
  21. data/features/api/filesystem/disk_usage.feature +7 -6
  22. data/features/api/filesystem/does_exist.feature +2 -2
  23. data/features/api/filesystem/is_absolute.feature +2 -2
  24. data/features/api/filesystem/is_directory.feature +2 -2
  25. data/features/api/filesystem/is_file.feature +2 -2
  26. data/features/api/filesystem/is_relative.feature +2 -2
  27. data/features/api/filesystem/move.feature +119 -0
  28. data/features/cli/console.feature +3 -3
  29. data/features/commands/debug_command.feature +93 -0
  30. data/features/commands/environment_variables.feature +64 -0
  31. data/features/commands/flushing.feature +74 -0
  32. data/features/commands/interactive.feature +90 -0
  33. data/features/commands/output/all_output.feature +445 -0
  34. data/features/commands/output/stdout.feature +66 -0
  35. data/features/configuration/exit_timeout.feature +5 -5
  36. data/features/configuration/fixtures_directories.feature +3 -3
  37. data/features/configuration/fixtures_path_prefix.feature +1 -1
  38. data/features/configuration/home_directory.feature +4 -4
  39. data/features/configuration/io_timeout.feature +2 -2
  40. data/features/configuration/keep_ansi.feature +2 -2
  41. data/features/configuration/log_level.feature +3 -3
  42. data/features/configuration/physical_block_size.feature +3 -3
  43. data/features/configuration/usage.feature +159 -0
  44. data/features/core/cleanup_aruba_directory.feature +52 -0
  45. data/features/development/build.feature +16 -0
  46. data/features/development/test.feature +24 -0
  47. data/features/file_system_commands.feature +12 -12
  48. data/features/getting_started/supported_programming_languages.feature +89 -0
  49. data/features/hooks/after/command.feature +1 -1
  50. data/features/hooks/before/command.feature +2 -2
  51. data/features/matchers/collection/include_an_object.feature +72 -0
  52. data/features/matchers/timeouts.feature +2 -2
  53. data/features/output.feature +60 -181
  54. data/features/step_definitions/aruba_dev_steps.rb +17 -10
  55. data/features/step_definitions/hooks.rb +11 -0
  56. data/features/steps/commands/exit_statuses.feature +3 -3
  57. data/features/steps/commands/run.feature +0 -15
  58. data/features/steps/filesystem/copy.feature +45 -0
  59. data/features/steps/filesystem/create_directory.feature +47 -0
  60. data/features/steps/filesystem/create_file.feature +53 -0
  61. data/features/steps/filesystem/file_content.feature +1 -1
  62. data/features/steps/filesystem/move.feature +45 -0
  63. data/features/steps/filesystem/overwrite_file.feature +72 -0
  64. data/features/steps/filesystem/use_fixture.feature +77 -0
  65. data/features/usage/install.feature +8 -0
  66. data/{features/fixtures → fixtures}/cli-app/.gitignore +0 -0
  67. data/{features/fixtures → fixtures}/cli-app/.rspec +0 -0
  68. data/{features/fixtures → fixtures}/cli-app/README.md +0 -0
  69. data/{features/fixtures → fixtures}/cli-app/Rakefile +0 -0
  70. data/{features/fixtures → fixtures}/cli-app/bin/cli +0 -0
  71. data/{features/fixtures → fixtures}/cli-app/cli-app.gemspec +0 -0
  72. data/{features/fixtures → fixtures}/cli-app/features/support/env.rb +0 -0
  73. data/{features/fixtures → fixtures}/cli-app/lib/cli/app.rb +0 -0
  74. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
  75. data/{features/fixtures → fixtures}/cli-app/lib/cli/app/version.rb +0 -0
  76. data/{features/fixtures/empty-app → fixtures/cli-app}/script/console +3 -3
  77. data/{features/fixtures → fixtures}/cli-app/spec/spec_helper.rb +0 -0
  78. data/{features/fixtures → fixtures}/cli-app/spec/support/aruba.rb +0 -0
  79. data/{features/fixtures → fixtures}/copy/file.txt +0 -0
  80. data/{features/fixtures → fixtures}/empty-app/.gitignore +0 -0
  81. data/{features/fixtures → fixtures}/empty-app/.rspec +0 -0
  82. data/{features/fixtures → fixtures}/empty-app/README.md +0 -0
  83. data/{features/fixtures → fixtures}/empty-app/Rakefile +0 -0
  84. data/{features/fixtures → fixtures}/empty-app/bin/cli +0 -0
  85. data/{features/fixtures → fixtures}/empty-app/cli-app.gemspec +0 -0
  86. data/{features/fixtures → fixtures}/empty-app/lib/cli/app.rb +0 -0
  87. data/{features/fixtures → fixtures}/empty-app/lib/cli/app/version.rb +0 -0
  88. data/{features/fixtures/cli-app → fixtures/empty-app}/script/console +3 -3
  89. data/{features/fixtures → fixtures}/empty-app/spec/spec_helper.rb +0 -0
  90. data/{features/fixtures → fixtures}/fixtures-app/test.txt +0 -0
  91. data/fixtures/getting-started-app/.gitignore +4 -0
  92. data/fixtures/getting-started-app/Gemfile +4 -0
  93. data/fixtures/getting-started-app/README.md +3 -0
  94. data/fixtures/getting-started-app/features/support/env.rb +1 -0
  95. data/{features/fixtures → fixtures}/spawn_process/stderr.sh +0 -0
  96. data/lib/aruba/announcer.rb +6 -2
  97. data/lib/aruba/api.rb +0 -16
  98. data/lib/aruba/api/command.rb +64 -266
  99. data/lib/aruba/api/core.rb +24 -26
  100. data/lib/aruba/api/deprecated.rb +370 -12
  101. data/lib/aruba/api/filesystem.rb +64 -15
  102. data/lib/aruba/aruba_path.rb +4 -0
  103. data/lib/aruba/config.rb +1 -1
  104. data/lib/aruba/cucumber.rb +5 -449
  105. data/lib/aruba/cucumber/command.rb +378 -0
  106. data/lib/aruba/cucumber/core.rb +29 -0
  107. data/lib/aruba/cucumber/environment.rb +30 -0
  108. data/lib/aruba/cucumber/file.rb +210 -0
  109. data/lib/aruba/cucumber/hooks.rb +11 -14
  110. data/lib/aruba/cucumber/rvm.rb +3 -0
  111. data/lib/aruba/matchers/base/base_matcher.rb +94 -0
  112. data/lib/aruba/matchers/collection.rb +1 -0
  113. data/lib/aruba/matchers/collection/all_objects.rb +2 -0
  114. data/lib/aruba/matchers/collection/include_an_object.rb +120 -0
  115. data/lib/aruba/matchers/command/be_successfully_executed.rb +3 -3
  116. data/lib/aruba/matchers/command/have_exit_status.rb +2 -11
  117. data/lib/aruba/matchers/command/have_finished_in_time.rb +5 -5
  118. data/lib/aruba/matchers/command/have_output.rb +46 -0
  119. data/lib/aruba/matchers/command/have_output_on_stderr.rb +42 -0
  120. data/lib/aruba/matchers/command/have_output_on_stdout.rb +42 -0
  121. data/lib/aruba/matchers/command/have_output_size.rb +28 -0
  122. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +1 -1
  123. data/lib/aruba/matchers/file/be_an_existing_file.rb +1 -1
  124. data/lib/aruba/matchers/file/have_file_content.rb +1 -1
  125. data/lib/aruba/matchers/file/have_file_size.rb +2 -2
  126. data/lib/aruba/matchers/file/have_same_file_content.rb +1 -1
  127. data/lib/aruba/matchers/path/have_permissions.rb +1 -1
  128. data/lib/aruba/platforms/aruba_file_creator.rb +2 -3
  129. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -3
  130. data/lib/aruba/platforms/determine_disk_usage.rb +23 -0
  131. data/lib/aruba/platforms/determine_file_size.rb +13 -0
  132. data/lib/aruba/platforms/disk_usage_calculator.rb +11 -0
  133. data/lib/aruba/platforms/local_environment.rb +15 -0
  134. data/lib/aruba/platforms/unix_environment_variables.rb +1 -1
  135. data/lib/aruba/platforms/unix_platform.rb +35 -14
  136. data/lib/aruba/process_monitor.rb +53 -7
  137. data/lib/aruba/processes/basic_process.rb +25 -5
  138. data/lib/aruba/processes/debug_process.rb +27 -25
  139. data/lib/aruba/processes/in_process.rb +7 -22
  140. data/lib/aruba/processes/spawn_process.rb +74 -31
  141. data/lib/aruba/rspec.rb +1 -6
  142. data/lib/aruba/version.rb +1 -1
  143. data/script/console +0 -1
  144. data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
  145. data/spec/aruba/api/environment/set_env_spec.rb +42 -0
  146. data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
  147. data/spec/aruba/api_spec.rb +10 -7
  148. data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
  149. data/spec/aruba/matchers/command_spec.rb +135 -4
  150. data/spec/aruba/spawn_process_spec.rb +1 -1
  151. metadata +107 -65
  152. data/.nav +0 -12
  153. data/features/debug.feature +0 -15
  154. data/features/fixtures/cli-app/spec/cli/app_spec.rb +0 -7
  155. data/features/flushing.feature +0 -26
  156. data/features/interactive.feature +0 -66
  157. data/features/no_clobber.feature +0 -25
  158. data/lib/aruba/disk_usage_calculator.rb +0 -7
@@ -53,22 +53,20 @@ module Aruba
53
53
  fail ArgumentError, "#{expand_path(dir)} is not a directory or does not exist." unless Aruba.platform.directory? expand_path(dir)
54
54
 
55
55
  aruba.current_directory << dir
56
+ announcer.announce :directory, expand_path(dir)
56
57
 
57
58
  old_dir = Aruba.platform.getwd
58
- old_oldpwd = ENV['OLDPWD']
59
- old_pwd = ENV['PWD']
60
-
61
- ENV['OLDPWD'] = Aruba.platform.getwd
62
- ENV['PWD'] = File.join(aruba.root_directory, aruba.current_directory).sub(%r{/$}, '')
63
59
 
64
60
  Aruba.platform.chdir File.join(aruba.root_directory, aruba.current_directory)
65
61
 
66
- result = block.call
62
+ result = Aruba.platform.with_environment(
63
+ 'OLDPWD' => old_dir,
64
+ 'PWD' => File.expand_path(File.join(aruba.root_directory, aruba.current_directory)),
65
+ &block
66
+ )
67
67
  ensure
68
68
  aruba.current_directory.pop
69
69
  Aruba.platform.chdir old_dir
70
- ENV['OLDPWD'] = old_oldpwd
71
- ENV['PWD'] = old_pwd
72
70
  end
73
71
 
74
72
  return result
@@ -77,6 +75,7 @@ module Aruba
77
75
  fail ArgumentError, "#{expand_path(dir)} is not a directory or does not exist." unless Aruba.platform.directory? expand_path(dir)
78
76
 
79
77
  aruba.current_directory << dir
78
+ announcer.announce :directory, expand_path(dir)
80
79
 
81
80
  self
82
81
  end
@@ -129,22 +128,32 @@ module Aruba
129
128
  # rubocop:enable Metrics/LineLength
130
129
 
131
130
  if RUBY_VERSION < '1.9'
132
- prefix = file_name.chars.to_a[0]
133
- rest = file_name.chars.to_a[1..-1].join('')
131
+ prefix = file_name.chars.to_a[0].to_s
132
+ rest = if file_name.chars.to_a[2..-1].nil?
133
+ nil
134
+ else
135
+ file_name.chars.to_a[2..-1].join
136
+ end
134
137
  else
135
138
  prefix = file_name[0]
136
- rest = file_name[1..-1]
139
+ rest = file_name[2..-1]
137
140
  end
138
141
 
139
142
  if aruba.config.fixtures_path_prefix == prefix
140
- File.join aruba.fixtures_directory, rest
143
+ path = File.join(*[aruba.fixtures_directory, rest].compact)
144
+
145
+ # rubocop:disable Metrics/LineLength
146
+ fail ArgumentError, %(Fixture "#{rest}" does not exist in fixtures directory "#{aruba.fixtures_directory}". This was the one we found first on your system from all possible candidates: #{aruba.config.fixtures_directories.map { |p| format('"%s"', p) }.join(', ')}.) unless Aruba.platform.exist? path
147
+ # rubocop:enable Metrics/LineLength
148
+
149
+ path
141
150
  elsif '~' == prefix
142
151
  path = with_environment do
143
152
  ArubaPath.new(File.expand_path(file_name))
144
153
  end
145
154
 
146
- fail 'Expanding "~/" to "/" is not allowed' if path.to_s == '/'
147
- fail %(Expanding "~/" to a relative path "#{path}" is not allowed) unless path.absolute?
155
+ fail ArgumentError, 'Expanding "~/" to "/" is not allowed' if path.to_s == '/'
156
+ fail ArgumentError, %(Expanding "~/" to a relative path "#{path}" is not allowed) unless path.absolute?
148
157
 
149
158
  path.to_s
150
159
  else
@@ -163,23 +172,12 @@ module Aruba
163
172
  # @yield
164
173
  # The block of code which should be run with the modified environment variables
165
174
  def with_environment(env = {}, &block)
166
- if RUBY_VERSION <= '1.9.3'
167
- old_env = ENV.to_hash.dup
168
- else
169
- old_env = ENV.to_h.dup
170
- end
171
-
172
175
  old_aruba_env = aruba.environment.to_h
173
176
 
174
- ENV.update aruba.environment.update(env).to_h
175
-
176
- block.call if block_given?
177
+ Aruba.platform.with_environment aruba.environment.update(env).to_h, &block
177
178
  ensure
178
179
  aruba.environment.clear
179
180
  aruba.environment.update old_aruba_env
180
-
181
- ENV.clear
182
- ENV.update old_env
183
181
  end
184
182
  end
185
183
  end
@@ -75,9 +75,9 @@ module Aruba
75
75
 
76
76
  # @deprecated
77
77
  def _read_interactive
78
- Aruba.platform.deprecated('The use of "#_read_interactive" is deprecated. Please use "last_command.stdout" instead')
78
+ Aruba.platform.deprecated('The use of "#_read_interactive" is deprecated. Please use "last_command_started.stdout" instead')
79
79
 
80
- last_command.stdout
80
+ last_command_started.stdout
81
81
  end
82
82
 
83
83
  # @deprecated
@@ -93,9 +93,9 @@ module Aruba
93
93
 
94
94
  # @deprecated
95
95
  def _write_interactive(input)
96
- Aruba.platform.deprecated('The use of "#_write_interactive" is deprecated. Please use "#last_command.write()" instead')
96
+ Aruba.platform.deprecated('The use of "#_write_interactive" is deprecated. Please use "#last_command_started.write()" instead')
97
97
 
98
- last_command.write(input)
98
+ last_command_started.write(input)
99
99
  end
100
100
 
101
101
  # @deprecated
@@ -133,7 +133,7 @@ module Aruba
133
133
  def mod?(file, perms, &block)
134
134
  Aruba.platform.deprecated('The use of "#mod?" is deprecated. Use "expect().to have_permissions()" instead')
135
135
 
136
- expect(Array(file)).to all have_permissions(perms)
136
+ expect(Array(file)).to all_objects have_permissions(perms)
137
137
  end
138
138
 
139
139
  # @deprecated
@@ -181,7 +181,7 @@ module Aruba
181
181
  def check_file_presence(paths, expect_presence = true)
182
182
  Aruba.platform.deprecated('The use of "check_file_presence" is deprecated. Use "expect().to be_an_existing_file" or "expect(all_paths).to all match /pattern/" instead')
183
183
 
184
- stop_processes!
184
+ stop_all_commands
185
185
 
186
186
  Array(paths).each do |path|
187
187
  if path.kind_of? Regexp
@@ -216,7 +216,8 @@ module Aruba
216
216
  #
217
217
  def check_file_size(paths_and_sizes)
218
218
  Aruba.platform.deprecated('The use of "#check_file_size" is deprecated. Use "expect(file).to have_file_size(size)", "expect(all_files).to all have_file_size(1)", "expect(all_files).to include a_file_with_size(1)" instead')
219
- stop_processes!
219
+
220
+ stop_all_commands
220
221
 
221
222
  paths_and_sizes.each do |path, size|
222
223
  expect(path).to have_file_size size
@@ -244,7 +245,7 @@ module Aruba
244
245
  def check_binary_file_content(file, reference_file, expect_match = true)
245
246
  Aruba.platform.deprecated('The use of "#check_binary_file_content" is deprecated. Use "expect(file).to have_same_file_content_like(file)"')
246
247
 
247
- stop_processes!
248
+ stop_all_commands
248
249
 
249
250
  if expect_match
250
251
  expect(file).to have_same_file_content_like reference_file
@@ -264,7 +265,7 @@ module Aruba
264
265
  def check_directory_presence(paths, expect_presence)
265
266
  Aruba.platform.deprecated('The use of "#check_directory_presence" is deprecated. Use "expect(directory).to be_an_existing_directory"')
266
267
 
267
- stop_processes!
268
+ stop_all_commands
268
269
 
269
270
  paths.each do |path|
270
271
  path = expand_path(path)
@@ -281,8 +282,9 @@ module Aruba
281
282
  def prep_for_fs_check(&block)
282
283
  Aruba.platform.deprecated('The use of "prep_for_fs_check" is deprecated. Use apropriate methods and the new rspec matchers instead')
283
284
 
284
- process_monitor.stop_processes!
285
- cd('.') { block.call }
285
+ stop_all_commands
286
+
287
+ cd('') { block.call }
286
288
  end
287
289
 
288
290
  # @deprecated
@@ -322,7 +324,7 @@ module Aruba
322
324
  def check_file_content(file, content, expect_match = true)
323
325
  Aruba.platform.deprecated('The use of "#check_file_content" is deprecated. Use "expect(file).to have_file_content(content)" instead. For eq match use string, for partial match use /regex/')
324
326
 
325
- stop_processes!
327
+ stop_all_commands
326
328
 
327
329
  if expect_match
328
330
  expect(file).to have_file_content content
@@ -499,6 +501,7 @@ module Aruba
499
501
 
500
502
  aruba.root_directory
501
503
  end
504
+
502
505
  # The path to the directory which contains fixtures
503
506
  # You might want to overwrite this method to place your data else where.
504
507
  #
@@ -514,6 +517,11 @@ module Aruba
514
517
  # rubocop:disable Metrics/CyclomaticComplexity
515
518
  # rubocop:disable Metrics/MethodLength
516
519
  def check_for_deprecated_variables
520
+ if defined? @aruba_exit_timeout
521
+ Aruba.platform.deprecated('The use of "@aruba_exit_timeout" is deprecated. Use "#aruba.config.exit_timeout = <numeric>" instead')
522
+ aruba.config.exit_timeout = @aruba_exit_timeout
523
+ end
524
+
517
525
  if defined? @aruba_io_wait_seconds
518
526
  Aruba.platform.deprecated('The use of "@aruba_io_wait_seconds" is deprecated. Use "#aruba.config.io_wait_timeout = <numeric>" instead')
519
527
  aruba.config.io_wait_timeout = @aruba_io_wait_seconds
@@ -521,16 +529,366 @@ module Aruba
521
529
 
522
530
  if defined? @keep_ansi
523
531
  Aruba.platform.deprecated('The use of "@aruba_keep_ansi" is deprecated. Use "#aruba.config.remove_ansi_escape_sequences = <true|false>" instead. Be aware that it uses an inverted logic')
532
+
524
533
  aruba.config.remove_ansi_escape_sequences = false
525
534
  end
526
535
 
527
536
  if defined? @aruba_root_directory
528
537
  Aruba.platform.deprecated('The use of "@aruba_root_directory" is deprecated. Use "#aruba.config.root_directory = <string>" instead')
538
+
529
539
  aruba.config.root_directory = @aruba_root_directory.to_s
530
540
  end
531
541
  end
532
542
  # rubocop:enable Metrics/CyclomaticComplexity
533
543
  # rubocop:enable Metrics/MethodLength
544
+
545
+ # Last command started
546
+ def last_command
547
+ Aruba.platform.deprecated('The use of "#last_command" is deprecated. Use "#last_command_started"')
548
+
549
+ process_monitor.last_command_started
550
+ end
551
+
552
+ # @deprecated
553
+ #
554
+ # Full compare arg1 and arg2
555
+ #
556
+ # @return [TrueClass, FalseClass]
557
+ # If arg1 is exactly the same as arg2 return true, otherwise false
558
+ def assert_exact_output(expected, actual)
559
+ # rubocop:disable Metrics/LineLength
560
+ Aruba.platform.deprecated('The use of "#assert_exact_output" is deprecated. Use "expect(command).to have_output \'exact\'" instead. There are also special matchers for "stdout" and "stderr"')
561
+ # rubocop:enable Metrics/LineLength
562
+
563
+ actual.force_encoding(expected.encoding) if RUBY_VERSION >= "1.9"
564
+ expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).to eq Aruba.platform.unescape(expected, aruba.config.keep_ansi)
565
+ end
566
+
567
+ # @deprecated
568
+ #
569
+ # Partial compare arg1 and arg2
570
+ #
571
+ # @return [TrueClass, FalseClass]
572
+ # If arg2 contains arg1 return true, otherwise false
573
+ def assert_partial_output(expected, actual)
574
+ # rubocop:disable Metrics/LineLength
575
+ Aruba.platform.deprecated('The use of "#assert_partial_output" is deprecated. Use "expect(command).to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
576
+ # rubocop:enable Metrics/LineLength
577
+
578
+ actual.force_encoding(expected.encoding) if RUBY_VERSION >= "1.9"
579
+ expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).to include(Aruba.platform.unescape(expected, aruba.config.keep_ansi))
580
+ end
581
+
582
+ # @deprecated
583
+ #
584
+ # Regex Compare arg1 and arg2
585
+ #
586
+ # @return [TrueClass, FalseClass]
587
+ # If arg2 matches arg1 return true, otherwise false
588
+ def assert_matching_output(expected, actual)
589
+ # rubocop:disable Metrics/LineLength
590
+ Aruba.platform.deprecated('The use of "#assert_matching_output" is deprecated. Use "expect(command).to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
591
+ # rubocop:enable Metrics/LineLength
592
+
593
+ actual.force_encoding(expected.encoding) if RUBY_VERSION >= "1.9"
594
+ expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).to match(/#{Aruba.platform.unescape(expected, aruba.config.keep_ansi)}/m)
595
+ end
596
+
597
+ # @deprecated
598
+ #
599
+ # Negative regex compare arg1 and arg2
600
+ #
601
+ # @return [TrueClass, FalseClass]
602
+ # If arg2 does not match arg1 return true, otherwise false
603
+ def assert_not_matching_output(expected, actual)
604
+ # rubocop:disable Metrics/LineLength
605
+ Aruba.platform.deprecated('The use of "#assert_not_matching_output" is deprecated. Use "expect(command).not_to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
606
+ # rubocop:enable Metrics/LineLength
607
+
608
+ actual.force_encoding(expected.encoding) if RUBY_VERSION >= "1.9"
609
+ expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).not_to match(/#{Aruba.platform.unescape(expected, aruba.config.keep_ansi)}/m)
610
+ end
611
+
612
+ # @deprecated
613
+ #
614
+ # Negative partial compare arg1 and arg2
615
+ #
616
+ # @return [TrueClass, FalseClass]
617
+ # If arg2 does not match/include arg1 return true, otherwise false
618
+ def assert_no_partial_output(unexpected, actual)
619
+ # rubocop:disable Metrics/LineLength
620
+ Aruba.platform.deprecated('The use of "#assert_no_partial_output" is deprecated. Use "expect(command).not_to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
621
+ # rubocop:enable Metrics/LineLength
622
+
623
+ actual.force_encoding(unexpected.encoding) if RUBY_VERSION >= "1.9"
624
+ if Regexp === unexpected
625
+ expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).not_to match unexpected
626
+ else
627
+ expect(Aruba.platform.unescape(actual, aruba.config.keep_ansi)).not_to include(unexpected)
628
+ end
629
+ end
630
+
631
+ # @deprecated
632
+ #
633
+ # Partial compare output of interactive command and arg1
634
+ #
635
+ # @return [TrueClass, FalseClass]
636
+ # If output of interactive command includes arg1 return true, otherwise false
637
+ def assert_partial_output_interactive(expected)
638
+ # rubocop:disable Metrics/LineLength
639
+ Aruba.platform.deprecated('The use of "#assert_partial_output_interactive" is deprecated. Use "expect(last_command_started).to have_output /partial/" instead. There are also special matchers for "stdout" and "stderr"')
640
+ # rubocop:enable Metrics/LineLength
641
+
642
+ Aruba.platform.unescape(last_command_started.stdout, aruba.config.keep_ansi).include?(Aruba.platform.unescape(expected, aruba.config.keep_ansi)) ? true : false
643
+ end
644
+
645
+ # @deprecated
646
+ #
647
+ # Check if command succeeded and if arg1 is included in output
648
+ #
649
+ # @return [TrueClass, FalseClass]
650
+ # If exit status is 0 and arg1 is included in output return true, otherwise false
651
+ def assert_passing_with(expected)
652
+ # rubocop:disable Metrics/LineLength
653
+ Aruba.platform.deprecated('The use of "#assert_passing_with" is deprecated. Use "expect(all_commands).to all(be_successfully_executed).and include_an_object(have_output(/partial/))" or something similar instead. There are also special matchers for "stdout" and "stderr"')
654
+ # rubocop:enable Metrics/LineLength
655
+
656
+ assert_success(true)
657
+ assert_partial_output(expected, all_output)
658
+ end
659
+
660
+ # @deprecated
661
+ #
662
+ # Check if command failed and if arg1 is included in output
663
+ #
664
+ # @return [TrueClass, FalseClass]
665
+ # If exit status is not equal 0 and arg1 is included in output return true, otherwise false
666
+ def assert_failing_with(expected)
667
+ # rubocop:disable Metrics/LineLength
668
+ Aruba.platform.deprecated('The use of "#assert_passing_with" is deprecated. Use "expect(all_commands).not_to include_an_object(be_successfully_executed).and include_an_object(have_output(/partial/))" or something similar instead. There are also special matchers for "stdout" and "stderr"')
669
+ # rubocop:enable Metrics/LineLength
670
+
671
+ assert_success(false)
672
+ assert_partial_output(expected, all_output)
673
+ end
674
+
675
+ # @deprecated
676
+ #
677
+ # Check exit status of process
678
+ #
679
+ # @return [TrueClass, FalseClass]
680
+ # If arg1 is true, return true if command was successful
681
+ # If arg1 is false, return true if command failed
682
+ def assert_success(success)
683
+ # rubocop:disable Metrics/LineLength
684
+ Aruba.platform.deprecated('The use of "#assert_success" is deprecated. Use "expect(last_command_started).to be_successfully_executed" or with "not_to" or the negative form "have_failed_running" (requires rspec >= 3.1)')
685
+ # rubocop:enable Metrics/LineLength
686
+
687
+ if success
688
+ expect(last_command_started).to be_successfully_executed
689
+ else
690
+ expect(last_command_started).not_to be_successfully_executed
691
+ end
692
+ end
693
+
694
+ # @deprecated
695
+ def assert_exit_status(status)
696
+ # rubocop:disable Metrics/LineLength
697
+ Aruba.platform.deprecated('The use of "#assert_success" is deprecated. Use "expect(last_command_started).to have_exit_status(status)"')
698
+ # rubocop:enable Metrics/LineLength
699
+
700
+ expect(last_command_started).to have_exit_status(status)
701
+ end
702
+
703
+ # @deprecated
704
+ def assert_not_exit_status(status)
705
+ # rubocop:disable Metrics/LineLength
706
+ Aruba.platform.deprecated('The use of "#assert_success" is deprecated. Use "expect(last_command_started).not_to have_exit_status(status)"')
707
+ # rubocop:enable Metrics/LineLength
708
+
709
+ expect(last_exit_status).not_to eq(status),
710
+ append_output_to("Exit status was #{last_exit_status} which was not expected.")
711
+ end
712
+
713
+ # @deprecated
714
+ def append_output_to(message)
715
+ Aruba.platform.deprecated('The use of "#append_output_to" is deprecated')
716
+
717
+ "#{message} Output:\n\n#{all_output}\n"
718
+ end
719
+
720
+ # @deprecated
721
+ def register_process(*args)
722
+ # Aruba.platform.deprecated('The use of "#register_process" is deprecated')
723
+
724
+ process_monitor.register_process(*args)
725
+ end
726
+
727
+ # @deprecated
728
+ def get_process(wanted)
729
+ # Aruba.platform.deprecated('The use of "#get_process" is deprecated')
730
+
731
+ process_monitor.get_process(wanted)
732
+ end
733
+
734
+ # @deprecated
735
+ #
736
+ # Fetch output (stdout, stderr) from command
737
+ #
738
+ # @param [String] cmd
739
+ # The command
740
+ def output_from(cmd)
741
+ # Aruba.platform.deprecated('The use of "#output_from" is deprecated')
742
+
743
+ process_monitor.output_from(cmd)
744
+ end
745
+
746
+ # @deprecated
747
+ #
748
+ # Fetch stdout from command
749
+ #
750
+ # @param [String] cmd
751
+ # The command
752
+ def stdout_from(cmd)
753
+ # Aruba.platform.deprecated('The use of "#stdout_from" is deprecated')
754
+
755
+ process_monitor.stdout_from(cmd)
756
+ end
757
+
758
+ # @deprecated
759
+ #
760
+ # Fetch stderr from command
761
+ #
762
+ # @param [String] cmd
763
+ # The command
764
+ def stderr_from(cmd)
765
+ # Aruba.platform.deprecated('The use of "#stderr_from" is deprecated')
766
+
767
+ process_monitor.stderr_from(cmd)
768
+ end
769
+
770
+ # @deprecated
771
+ #
772
+ # Get stdout of all processes
773
+ #
774
+ # @return [String]
775
+ # The stdout of all process which have run before
776
+ def all_stdout
777
+ Aruba.platform.deprecated('The use of "#all_stdout" is deprecated. Use `all_commands.map { |c| c.stdout }.join("\n") instead. If you need to check for some output use "expect(all_commands).to have_output_on_stdout /output/" instead')
778
+
779
+ process_monitor.all_stdout
780
+ end
781
+
782
+ # @deprecated
783
+ #
784
+ # Get stderr of all processes
785
+ #
786
+ # @return [String]
787
+ # The stderr of all process which have run before
788
+ def all_stderr
789
+ Aruba.platform.deprecated('The use of "#all_stderr" is deprecated. Use `all_commands.map { |c| c.stderr }.join("\n") instead. If you need to check for some output use "expect(all_commands).to have_output_on_stderr /output/" instead')
790
+
791
+ process_monitor.all_stderr
792
+ end
793
+
794
+ # @deprecated
795
+ #
796
+ # Get stderr and stdout of all processes
797
+ #
798
+ # @return [String]
799
+ # The stderr and stdout of all process which have run before
800
+ def all_output
801
+ Aruba.platform.deprecated('The use of "#all_output" is deprecated. Use `all_commands.map { |c| c.output }.join("\n") instead. If you need to check for some output use "expect(all_commands).to have_output /output/" instead')
802
+
803
+ process_monitor.all_output
804
+ end
805
+
806
+ # @deprecated
807
+ #
808
+ # Default exit timeout for running commands with aruba
809
+ #
810
+ # Overwrite this method if you want a different timeout or set
811
+ # `@aruba_timeout_seconds`.
812
+ def exit_timeout
813
+ Aruba.platform.deprecated('The use of "#exit_timeout" is deprecated. Use "aruba.config.exit_timeout" instead.')
814
+
815
+ aruba.config.exit_timeout
816
+ end
817
+
818
+ # @deprecated
819
+ #
820
+ # Default io wait timeout
821
+ #
822
+ # Overwrite this method if you want a different timeout or set
823
+ # `@aruba_io_wait_seconds
824
+ def io_wait
825
+ Aruba.platform.deprecated('The use of "#io_wait" is deprecated. Use "aruba.config.io_wait_timeout" instead')
826
+
827
+ aruba.config.io_wait_timeout
828
+ end
829
+
830
+ # @deprecated
831
+ # Only processes
832
+ def only_processes
833
+ Aruba.platform.deprecated('The use of "#only_processes" is deprecated. Use "#all_commands" instead')
834
+
835
+ process_monitor.only_processes
836
+ end
837
+
838
+ # @deprecated
839
+ def last_exit_status
840
+ Aruba.platform.deprecated('The use of "#last_exit_status" is deprecated. Use "#last_command_(started|stopped).exit_status" instead')
841
+
842
+ process_monitor.last_exit_status
843
+ end
844
+
845
+ # @deprecated
846
+ def stop_process(process)
847
+ # Aruba.platform.deprecated('The use of "#stop_process" is deprecated. Use "#last_command_(started|stopped).stop" instead')
848
+
849
+ @last_exit_status = process_monitor.stop_process(process)
850
+ end
851
+
852
+ # @deprecated
853
+ def terminate_process(process)
854
+ # Aruba.platform.deprecated('The use of "#terminate_process" is deprecated. Use "#last_command_(started|stopped).terminate" instead')
855
+
856
+ process_monitor.terminate_process(process)
857
+ end
858
+
859
+ # @deprecated
860
+ def stop_processes!
861
+ Aruba.platform.deprecated('The use of "#stop_processes!" is deprecated. Use "#stop_all_commands" instead')
862
+
863
+ stop_all_commands
864
+ end
865
+
866
+ # @deprecated
867
+ #
868
+ # Terminate all running processes
869
+ def terminate_processes!
870
+ Aruba.platform.deprecated('The use of "#stop_processes!" is deprecated. Use "all_commands.each(&:terminate)" instead')
871
+
872
+ all_commands.each(&:terminate)
873
+ end
874
+
875
+ # @deprecated
876
+ #
877
+ # Access to announcer
878
+ def announcer
879
+ # Aruba.platform.deprecated('The use of "#announcer" is deprecated. Use "aruba.announcer" instead')
880
+
881
+ @announcer ||= Announcer.new(
882
+ self,
883
+ :stdout => defined?(@announce_stdout),
884
+ :stderr => defined?(@announce_stderr),
885
+ :dir => defined?(@announce_dir),
886
+ :cmd => defined?(@announce_cmd),
887
+ :env => defined?(@announce_env)
888
+ )
889
+
890
+ @announcer
891
+ end
534
892
  end
535
893
  end
536
894
  end