1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! Errors that can arise from dockertest.

use thiserror::Error;

use crate::ContainerState;

/// Public library error conditions.
#[derive(Error, Debug, PartialEq, Clone, Eq)]
#[allow(missing_docs)]
pub enum DockerTestError {
    #[error("tried to enter container state `{current}` from state `{tried_to_enter}`")]
    ContainerState {
        current: ContainerState,
        tried_to_enter: ContainerState,
    },
    #[error("docker daemon interaction error `{0}`")]
    Daemon(String),
    #[error("recoverable error condition")]
    Recoverable(String),
    #[error("container teardown error")]
    Teardown(String),
    #[error("pulling image from remote repository failed, repository: {repository}, tag: {tag}")]
    Pull {
        repository: String,
        tag: String,
        error: String,
    },
    #[error("startup condition not fulfilled `{0}`")]
    Startup(String),
    #[error("processing error condition `{0}`")]
    Processing(String),
    #[error("test body failure `{0}`")]
    TestBody(String),
    #[error("log write error `{0}'")]
    LogWriteError(String),
    #[error("host port error `{0}`")]
    HostPort(String),
    #[error("failed to follow container log stream `{0}'")]
    ContainerLogStream(String),
}