Skip to content

Commit 2a17c34

Browse files
authored
Merge pull request #15 from epage/api
fix(assert): Don't put concrete predicates in the API
2 parents a0105e3 + 933c3fe commit 2a17c34

File tree

2 files changed

+18
-24
lines changed

2 files changed

+18
-24
lines changed

src/assert.rs

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ impl Assert {
154154
self
155155
}
156156

157-
/// Ensure the command returned the expected code.
157+
/// Ensure the command aborted before returning a code.
158158
pub fn interrupted(self) -> Self {
159159
if self.output.status.code().is_some() {
160160
panic!("Unexpected completion\n{}", self);
@@ -166,7 +166,7 @@ impl Assert {
166166
///
167167
/// # Examples
168168
///
169-
/// ```rust,ignore
169+
/// ```rust
170170
/// use assert_cmd::prelude::*;
171171
///
172172
/// use std::process::Command;
@@ -176,12 +176,6 @@ impl Assert {
176176
/// .env("exit", "42")
177177
/// .assert()
178178
/// .code(42);
179-
/// // which is equivalent to
180-
/// Command::main_binary()
181-
/// .unwrap()
182-
/// .env("exit", "42")
183-
/// .assert()
184-
/// .code(predicates::ord::eq(42));
185179
/// ```
186180
pub fn code<I, P>(self, pred: I) -> Self
187181
where
@@ -206,7 +200,7 @@ impl Assert {
206200
///
207201
/// # Examples
208202
///
209-
/// ```rust,ignore
203+
/// ```rust
210204
/// use assert_cmd::prelude::*;
211205
///
212206
/// use std::process::Command;
@@ -216,7 +210,7 @@ impl Assert {
216210
/// .env("stdout", "hello")
217211
/// .env("stderr", "world")
218212
/// .assert()
219-
/// .stdout(predicates::ord::eq(b"hello"));
213+
/// .stdout("hello\n");
220214
/// ```
221215
pub fn stdout<I, P>(self, pred: I) -> Self
222216
where
@@ -240,7 +234,7 @@ impl Assert {
240234
///
241235
/// # Examples
242236
///
243-
/// ```rust,ignore
237+
/// ```rust
244238
/// use assert_cmd::prelude::*;
245239
///
246240
/// use std::process::Command;
@@ -250,7 +244,7 @@ impl Assert {
250244
/// .env("stdout", "hello")
251245
/// .env("stderr", "world")
252246
/// .assert()
253-
/// .stderr(predicates::ord::eq(b"world"));
247+
/// .stderr("world\n");
254248
/// ```
255249
pub fn stderr<I, P>(self, pred: I) -> Self
256250
where
@@ -349,11 +343,12 @@ where
349343
}
350344
}
351345

352-
impl<P> IntoOutputPredicate<predicates::str::Utf8Predicate<P>> for P
353-
where
354-
P: predicates::Predicate<str>,
346+
impl IntoOutputPredicate<predicates::str::Utf8Predicate<predicates::ord::EqPredicate<&'static str>>>
347+
for &'static str
355348
{
356-
fn into_output(self) -> predicates::str::Utf8Predicate<P> {
357-
self.from_utf8()
349+
fn into_output(
350+
self,
351+
) -> predicates::str::Utf8Predicate<predicates::ord::EqPredicate<&'static str>> {
352+
predicates::ord::eq(self).from_utf8()
358353
}
359354
}

tests/cargo.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,46 +4,45 @@ extern crate predicates;
44
use std::process;
55

66
use assert_cmd::prelude::*;
7-
use predicates::prelude::*;
87

98
#[test]
109
fn main_binary() {
1110
let mut cmd = process::Command::main_binary().unwrap();
1211
cmd.env("stdout", "42");
13-
cmd.assert().success().stdout(predicate::eq("42").trim());
12+
cmd.assert().success().stdout("42\n");
1413
}
1514

1615
#[test]
1716
fn main_binary_with_empty_env() {
1817
let mut cmd = process::Command::main_binary().unwrap();
1918
cmd.env_clear().env("stdout", "42");
20-
cmd.assert().success().stdout(predicate::eq("42").trim());
19+
cmd.assert().success().stdout("42\n");
2120
}
2221

2322
#[test]
2423
fn cargo_binary() {
2524
let mut cmd = process::Command::cargo_bin("bin_fixture").unwrap();
2625
cmd.env("stdout", "42");
27-
cmd.assert().success().stdout(predicate::eq("42").trim());
26+
cmd.assert().success().stdout("42\n");
2827
}
2928

3029
#[test]
3130
fn cargo_binary_with_empty_env() {
3231
let mut cmd = process::Command::cargo_bin("bin_fixture").unwrap();
3332
cmd.env_clear().env("stdout", "42");
34-
cmd.assert().success().stdout(predicate::eq("42").trim());
33+
cmd.assert().success().stdout("42\n");
3534
}
3635

3736
#[test]
3837
fn cargo_example() {
3938
let mut cmd = process::Command::cargo_example("example_fixture").unwrap();
4039
cmd.env("stdout", "42");
41-
cmd.assert().success().stdout(predicate::eq("42").trim());
40+
cmd.assert().success().stdout("42\n");
4241
}
4342

4443
#[test]
4544
fn cargo_example_with_empty_env() {
4645
let mut cmd = process::Command::cargo_example("example_fixture").unwrap();
4746
cmd.env_clear().env("stdout", "42");
48-
cmd.assert().success().stdout(predicate::eq("42").trim());
47+
cmd.assert().success().stdout("42\n");
4948
}

0 commit comments

Comments
 (0)