dnf-repofile 0.1.2

Pure Rust library for parsing, managing, validating, diffing, and rendering DNF/YUM .repo configuration files
Documentation
use dnf_repofile::repo::Repo;
use dnf_repofile::types::*;

#[test]
fn test_validate_repo_no_url_source() {
    let repo = Repo::new(RepoId::try_new("testrepo").unwrap());
    let report = repo.validate();
    assert!(!report.is_ok());
    assert!(report.errors.iter().any(|e| e.message.contains("URL")));
}

#[test]
fn test_validate_repo_with_baseurl_passes() {
    let mut repo = Repo::new(RepoId::try_new("testrepo").unwrap());
    repo.baseurl
        .push("https://example.com/repo/".parse().unwrap());
    assert!(repo.validate().is_ok());
}

#[test]
fn test_validate_gpgkey_without_gpgcheck_warns() {
    let mut repo = Repo::new(RepoId::try_new("testrepo").unwrap());
    repo.baseurl
        .push("https://example.com/repo/".parse().unwrap());
    repo.gpgkey.push("https://example.com/key".to_string());
    repo.gpgcheck = Some(DnfBool::False);
    assert!(repo
        .validate()
        .warnings
        .iter()
        .any(|w| w.message.contains("gpg")));
}