initial
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
import json
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest.mock import patch
|
||||
|
||||
from scripts import update_librewolf
|
||||
|
||||
|
||||
class VersionOrderingTest(unittest.TestCase):
|
||||
def test_patch_release_is_newer_than_rebuild_without_patch(self) -> None:
|
||||
self.assertLess(
|
||||
update_librewolf.version_key("153.0-3"),
|
||||
update_librewolf.version_key("153.0.1-1"),
|
||||
)
|
||||
|
||||
def test_cask_and_release_versions_have_same_ordering(self) -> None:
|
||||
self.assertEqual(
|
||||
update_librewolf.version_key("153.0.3,1"),
|
||||
update_librewolf.version_key("153.0.3-1"),
|
||||
)
|
||||
|
||||
|
||||
class StableReleaseTest(unittest.TestCase):
|
||||
@patch.object(update_librewolf, "fetch")
|
||||
def test_prerelease_is_rejected(self, fetch) -> None:
|
||||
fetch.return_value = json.dumps(
|
||||
{
|
||||
"tag_name": "154.0-1",
|
||||
"draft": False,
|
||||
"prerelease": True,
|
||||
}
|
||||
).encode()
|
||||
|
||||
with self.assertRaisesRegex(ValueError, "not stable"):
|
||||
update_librewolf.latest_stable_release()
|
||||
|
||||
|
||||
class CaskUpdateTest(unittest.TestCase):
|
||||
CASK = '''cask "librewolf" do
|
||||
version "152.0.6,1"
|
||||
sha256 arm: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
intel: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
arm64_linux: "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
||||
x86_64_linux: "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
|
||||
end
|
||||
'''
|
||||
CHECKSUMS = {
|
||||
"arm": "1" * 64,
|
||||
"intel": "2" * 64,
|
||||
"arm64_linux": "3" * 64,
|
||||
"x86_64_linux": "4" * 64,
|
||||
}
|
||||
|
||||
@patch.object(update_librewolf, "release_checksums")
|
||||
@patch.object(update_librewolf, "latest_stable_release")
|
||||
def test_new_stable_release_updates_version_and_all_hashes(
|
||||
self, latest_stable_release, release_checksums
|
||||
) -> None:
|
||||
latest_stable_release.return_value = {"stable_tag": "153.0.3-1"}
|
||||
release_checksums.return_value = self.CHECKSUMS
|
||||
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
cask = Path(directory) / "librewolf.rb"
|
||||
cask.write_text(self.CASK)
|
||||
|
||||
self.assertTrue(update_librewolf.update_cask(cask))
|
||||
updated = cask.read_text()
|
||||
|
||||
self.assertIn('version "153.0.3,1"', updated)
|
||||
for checksum in self.CHECKSUMS.values():
|
||||
self.assertIn(checksum, updated)
|
||||
|
||||
@patch.object(update_librewolf, "release_checksums")
|
||||
@patch.object(update_librewolf, "latest_stable_release")
|
||||
def test_older_release_does_not_downgrade_cask(
|
||||
self, latest_stable_release, release_checksums
|
||||
) -> None:
|
||||
latest_stable_release.return_value = {"stable_tag": "151.0.3-1"}
|
||||
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
cask = Path(directory) / "librewolf.rb"
|
||||
cask.write_text(self.CASK)
|
||||
self.assertFalse(update_librewolf.update_cask(cask))
|
||||
self.assertEqual(cask.read_text(), self.CASK)
|
||||
|
||||
release_checksums.assert_not_called()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user