-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Capture_io can has mock input and ExUnit.Server stops when getting :eof as an input #1103
Conversation
This is awesome! ❤️ 💚 💙 💛 💜 |
@@ -28,7 +28,8 @@ defmodule ExUnit.CaptureIO do | |||
named device like `:stderr` is also possible globally by | |||
giving the registered device name explicitly as argument. | |||
|
|||
The input is mocked to return `:eof`. | |||
A developer can set a string as an input. The default |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we make the default input to be an empty string? If we have an empty string, it means we also reached the end of the file...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we do it, we can force the input to always be a binary!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@josevalim Empty string doesn't mean the end of input in general. If you're going to use capture_io
for anything other than iex, it'll might not behave well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems the code treat them as the same though, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the difficult point is IO
includes various IO. When a developer deal with standard IO(a keyboard and a display), he don't have to necessarily consider :eof
, but when he deal with file IO, he have to consider :eof
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect. :) Ok! let me know when we can merge this! :D
I fixed typo. Please merge this. |
Capture_io can has mock input and ExUnit.Server stops when getting :eof as an input
Merged (with pleasure)! |
Thanks! :D |
discussing at #919
Using this patch, we can test IEx like the following.