v0.30.1
This commit is contained in:
1 parent
f3dd34dae4
commit
f213d853e2
28 files changed
+5368
-4692
No files matched your search
@@ -146,3 +146,65 @@ mod renewal_regressions {
|
||||
stop(app).await;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
mod runtime_metadata_tests {
|
||||
use super::*;
|
||||
|
||||
fn write_package(site: &Path, package: &str, version: &str, metadata: &str) {
|
||||
let folder = site.join(format!("{package}-{version}.dist-info"));
|
||||
std::fs::create_dir_all(&folder).unwrap();
|
||||
std::fs::write(folder.join("METADATA"), metadata).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn managed_python_pip_and_certbot_versions_use_metadata_only() {
|
||||
let temp = tempfile::tempdir().unwrap();
|
||||
let root = temp.path();
|
||||
let python = venv_python(root);
|
||||
let certbot = venv_certbot(root);
|
||||
std::fs::create_dir_all(venv_bin(root)).unwrap();
|
||||
std::fs::write(&python, "").unwrap();
|
||||
std::fs::write(&certbot, "").unwrap();
|
||||
std::fs::write(root.join("pyvenv.cfg"), "home = /usr/bin\nversion = 3.13.5\n").unwrap();
|
||||
let site = if cfg!(windows) {
|
||||
root.join("Lib/site-packages")
|
||||
} else {
|
||||
root.join("lib/python3.13/site-packages")
|
||||
};
|
||||
write_package(&site, "pip", "25.2", "Metadata-Version: 2.3\nName: pip\nVersion: 25.2\n");
|
||||
write_package(&site, "certbot", "5.8.0", "Name: certbot\nVersion: 5.8.0\n");
|
||||
let versions = runtime_versions(&python, true, Some(&certbot));
|
||||
assert_eq!(versions.python.as_deref(), Some("3.13.5"));
|
||||
assert_eq!(versions.pip.as_deref(), Some("25.2"));
|
||||
assert_eq!(versions.certbot.as_deref(), Some("5.8.0"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn absent_or_unverified_versions_are_not_invented() {
|
||||
let temp = tempfile::tempdir().unwrap();
|
||||
let root = temp.path();
|
||||
let executable = root.join("bin/python3");
|
||||
std::fs::create_dir_all(root.join("bin")).unwrap();
|
||||
std::fs::write(&executable, "").unwrap();
|
||||
let site = root.join("lib/python3/dist-packages");
|
||||
write_package(&site, "pip", "99.0", "Name: other-package\nVersion: 99.0\n");
|
||||
let versions = runtime_versions(&executable, true, None);
|
||||
assert!(versions.python.is_none());
|
||||
assert!(versions.pip.is_none());
|
||||
assert!(versions.certbot.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn conflicting_site_distributions_do_not_return_stale_versions() {
|
||||
let temp = tempfile::tempdir().unwrap();
|
||||
let root = temp.path();
|
||||
let executable = root.join("bin/python3");
|
||||
std::fs::create_dir_all(root.join("bin")).unwrap();
|
||||
std::fs::write(&executable, "").unwrap();
|
||||
write_package(&root.join("lib/python3/dist-packages"), "pip", "23.0", "Name: pip\nVersion: 23.0\n");
|
||||
write_package(&root.join("lib/python3.13/site-packages"), "pip", "25.0", "Name: pip\nVersion: 25.0\n");
|
||||
assert!(runtime_versions(&executable, true, None).pip.is_none());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user