notify: add separate context for unit-tests
... as using PVEContext for tests is brittle and annoying for some tests. Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
This commit is contained in:
parent
50fa98e241
commit
f0bf95f53b
@ -7,6 +7,8 @@ pub mod common;
|
||||
pub mod pbs;
|
||||
#[cfg(feature = "pve-context")]
|
||||
pub mod pve;
|
||||
#[cfg(test)]
|
||||
mod test;
|
||||
|
||||
/// Product-specific context
|
||||
pub trait Context: Send + Sync + Debug {
|
||||
@ -22,12 +24,10 @@ pub trait Context: Send + Sync + Debug {
|
||||
fn default_config(&self) -> &'static str;
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "pve-context"))]
|
||||
#[cfg(not(test))]
|
||||
static CONTEXT: Mutex<Option<&'static dyn Context>> = Mutex::new(None);
|
||||
// The test unfortunately require context...
|
||||
// TODO: Check if we can make this nicer...
|
||||
#[cfg(feature = "pve-context")]
|
||||
static CONTEXT: Mutex<Option<&'static dyn Context>> = Mutex::new(Some(&pve::PVE_CONTEXT));
|
||||
#[cfg(test)]
|
||||
static CONTEXT: Mutex<Option<&'static dyn Context>> = Mutex::new(Some(&test::TestContext));
|
||||
|
||||
/// Set the product-specific context
|
||||
pub fn set_context(context: &'static dyn Context) {
|
||||
|
26
proxmox-notify/src/context/test.rs
Normal file
26
proxmox-notify/src/context/test.rs
Normal file
@ -0,0 +1,26 @@
|
||||
use crate::context::Context;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct TestContext;
|
||||
|
||||
impl Context for TestContext {
|
||||
fn lookup_email_for_user(&self, _user: &str) -> Option<String> {
|
||||
Some("test@example.com".into())
|
||||
}
|
||||
|
||||
fn default_sendmail_author(&self) -> String {
|
||||
"Proxmox VE".into()
|
||||
}
|
||||
|
||||
fn default_sendmail_from(&self) -> String {
|
||||
"root".into()
|
||||
}
|
||||
|
||||
fn http_proxy_config(&self) -> Option<String> {
|
||||
None
|
||||
}
|
||||
|
||||
fn default_config(&self) -> &'static str {
|
||||
""
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user