aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/console_helpers.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2017-07-25 11:46:20 -0400
committerGitHub <noreply@github.com>2017-07-25 11:46:20 -0400
commita1fa2fbaf13ee125dbfd6a85d203c57e964fec85 (patch)
treeec170724070c7624089d8a53ea8083f3c5f47478 /railties/test/console_helpers.rb
parent82200b2541c2e1adee2919aaaccf4bf268c9af99 (diff)
parentaf4cef024b40fd425ea7e24fd648591ccd196327 (diff)
downloadrails-a1fa2fbaf13ee125dbfd6a85d203c57e964fec85.tar.gz
rails-a1fa2fbaf13ee125dbfd6a85d203c57e964fec85.tar.bz2
rails-a1fa2fbaf13ee125dbfd6a85d203c57e964fec85.zip
Merge pull request #29931 from y-yagi/extract_assert_output_and_available_pty_to_module
Extract `assert_output` and `available_pty?` into `ConsoleHelpers` module
Diffstat (limited to 'railties/test/console_helpers.rb')
-rw-r--r--railties/test/console_helpers.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/railties/test/console_helpers.rb b/railties/test/console_helpers.rb
new file mode 100644
index 0000000000..4b11afa511
--- /dev/null
+++ b/railties/test/console_helpers.rb
@@ -0,0 +1,23 @@
+begin
+ require "pty"
+rescue LoadError
+end
+
+module ConsoleHelpers
+ def assert_output(expected, io, timeout = 10)
+ timeout = Time.now + timeout
+
+ output = ""
+ until output.include?(expected) || Time.now > timeout
+ if IO.select([io], [], [], 0.1)
+ output << io.read(1)
+ end
+ end
+
+ assert_includes output, expected, "#{expected.inspect} expected, but got:\n\n#{output}"
+ end
+
+ def available_pty?
+ defined?(PTY) && PTY.respond_to?(:open)
+ end
+end