Add channel-aware release tooling and updater recovery
This commit is contained in:
53
release_tests/test_release_remote.py
Normal file
53
release_tests/test_release_remote.py
Normal file
@@ -0,0 +1,53 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
from scripts.validate_release_remote import remote_matches, repository_identity
|
||||
|
||||
|
||||
class ReleaseRemoteTests(unittest.TestCase):
|
||||
def test_https_and_ssh_forms_identify_the_same_repository(self) -> None:
|
||||
expected = repository_identity(
|
||||
"https://git.m4ko.net/m4ko/pristontale-eu-linux"
|
||||
)
|
||||
self.assertEqual(
|
||||
repository_identity("git@git.m4ko.net:m4ko/pristontale-eu-linux.git"),
|
||||
expected,
|
||||
)
|
||||
self.assertEqual(
|
||||
repository_identity(
|
||||
"ssh://git@git.m4ko.net/m4ko/pristontale-eu-linux.git"
|
||||
),
|
||||
expected,
|
||||
)
|
||||
|
||||
def test_file_url_and_local_path_identify_the_same_repository(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temporary:
|
||||
path = Path(temporary) / "remote.git"
|
||||
self.assertEqual(
|
||||
repository_identity(path.as_uri()),
|
||||
repository_identity(str(path)),
|
||||
)
|
||||
|
||||
def test_remote_must_match_one_explicitly_allowed_identity(self) -> None:
|
||||
self.assertTrue(
|
||||
remote_matches(
|
||||
"ssh://git@192.168.0.110:222/m4ko/pristontale-eu-linux.git",
|
||||
[
|
||||
"https://git.m4ko.net/m4ko/pristontale-eu-linux",
|
||||
"ssh://git@192.168.0.110:222/m4ko/pristontale-eu-linux.git",
|
||||
],
|
||||
)
|
||||
)
|
||||
self.assertFalse(
|
||||
remote_matches(
|
||||
"ssh://git@untrusted.test/m4ko/pristontale-eu-linux.git",
|
||||
["https://git.m4ko.net/m4ko/pristontale-eu-linux"],
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user