Files
omarchy-pkgs/pkgbuilds/obsidian/test-upstream.py
T
Marcelo Alcantara 2a47ad775b Drop setuid from chrome-sandbox and keep Obsidian's tests in its package
Chromium sandboxes through unprivileged user namespaces on Arch-family
kernels, so the setuid-root helper is unnecessary. The watcher tests now run
from check() as checksummed package sources, leaving tests/ and the shared
Tests workflow untouched.
2026-09-24 16:05:38 +10:00

48 lines
2.0 KiB
Python

#!/usr/bin/python3
import importlib.util
from pathlib import Path
import unittest
path = Path(__file__).with_name('upstream.py')
spec = importlib.util.spec_from_file_location('obsidian_upstream', path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
def release(version, **extra):
return dict(tag_name='v' + version, draft=False, prerelease=False,
published_at='2026-09-23T00:00:00Z', assets=[{
'name': f'obsidian-{version}-arm64.tar.gz',
'digest': 'sha256:' + 'a' * 64,
'browser_download_url': f'https://github.com/obsidianmd/obsidian-releases/releases/download/v{version}/obsidian-{version}-arm64.tar.gz'
}], **extra)
class DesktopReleaseTests(unittest.TestCase):
def test_mobile_only_and_preview_ignored(self):
mobile = release('2.0.0'); mobile['assets'] = [{'name': 'Obsidian.apk'}]
preview = release('3.0.0'); preview['prerelease'] = True
draft = release('4.0.0'); draft['draft'] = True
self.assertEqual(module.select([mobile, preview, draft, release('1.13.7')])['pkgver'], '1.13.7')
def test_numeric_version_order(self):
self.assertEqual(module.select([release('1.9.0'), release('1.13.7')])['pkgver'], '1.13.7')
def test_bad_newest_digest_fails_without_falling_back(self):
newest = release('2.0.0'); newest['assets'][0]['digest'] = None
with self.assertRaises(ValueError):
module.select([release('1.13.7'), newest])
def test_changed_url_rejected(self):
row = release('1.13.7'); row['assets'][0]['browser_download_url'] = 'https://example.org/foreign'
with self.assertRaises(ValueError): module.select([row])
def test_missing_or_duplicate_installer_rejected(self):
with self.assertRaises(ValueError): module.select([])
row = release('1.13.7'); row['assets'] *= 2
with self.assertRaises(ValueError): module.select([row])
if __name__ == '__main__':
unittest.main()