From b3455ded580fd622d1300e1dba19904094d35d9e Mon Sep 17 00:00:00 2001 From: Art_Sakura <1754798088@qq.com> Date: Tue, 27 Oct 2026 09:47:48 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20#=20=E4=BF=AE=E5=A4=8D=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/check_asset_manifest.py | 3 +-- src/farm_core/catalogue_release.py | 6 ++++++ src/farm_render/catalogue_bundle.py | 8 +------- tests/test_asset_bundle.py | 11 +++++++++++ 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/scripts/check_asset_manifest.py b/scripts/check_asset_manifest.py index c3d0ae2..8999dac 100644 --- a/scripts/check_asset_manifest.py +++ b/scripts/check_asset_manifest.py @@ -8,8 +8,7 @@ from zipfile import ZipFile ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(ROOT / 'src')) -from farm_core.catalogue_release import parse_manifest -from farm_render.catalogue_bundle import ROOTS +from farm_core.catalogue_release import ROOTS, parse_manifest def check(root): diff --git a/src/farm_core/catalogue_release.py b/src/farm_core/catalogue_release.py index 48ed90e..0e1ee9d 100644 --- a/src/farm_core/catalogue_release.py +++ b/src/farm_core/catalogue_release.py @@ -15,6 +15,12 @@ FILES = { MANIFEST_LIMIT = 16 * 1024 DIGEST = re.compile(r'[0-9a-f]{64}') VERSION = re.compile(r'[A-Za-z0-9._-]{1,64}') +ROOTS = { + 'Github': 'https://raw.githubusercontent.com/Shu-Ying/' + 'farm_service/main/catalogue', + 'Gitea': 'https://gitea.diuse.work/Diuse/farm_service/' + 'raw/branch/main/catalogue', +} def _pairs(items): diff --git a/src/farm_render/catalogue_bundle.py b/src/farm_render/catalogue_bundle.py index 3747205..49f85b8 100644 --- a/src/farm_render/catalogue_bundle.py +++ b/src/farm_render/catalogue_bundle.py @@ -11,7 +11,7 @@ import uuid from zipfile import BadZipFile from farm_core.catalogue_release import ( - FILES, MANIFEST_LIMIT, canonical, check_file, decode, load_catalogue, + FILES, MANIFEST_LIMIT, ROOTS, canonical, check_file, decode, load_catalogue, parse_manifest, ) from farm_core.domain import FarmError @@ -23,12 +23,6 @@ from .release_validation import validate_archive, validate_metadata logger = logging.getLogger(__name__) _LOCK = threading.RLock() _FAILURES = (OSError, ValueError, FarmError, EOFError, BadZipFile) -ROOTS = { - 'Github': 'https://raw.githubusercontent.com/Shu-Ying/' - 'farm_service/main/catalogue', - 'Gitea': 'https://gitea.diuse.work/Diuse/farm_service/' - 'raw/branch/main/catalogue', -} @dataclass(frozen=True) diff --git a/tests/test_asset_bundle.py b/tests/test_asset_bundle.py index 6e6287a..97e5743 100644 --- a/tests/test_asset_bundle.py +++ b/tests/test_asset_bundle.py @@ -1,6 +1,8 @@ from concurrent.futures import ThreadPoolExecutor from io import BytesIO from pathlib import Path +import subprocess +import sys import tempfile import unittest from unittest.mock import patch @@ -12,6 +14,15 @@ ZIP = ROOT / 'src/farm_render/data/assets.zip' class BundleTests(unittest.TestCase): + def test_manifest_check_without_third_party_packages(self): + result = subprocess.run( + [sys.executable, '-S', + str(ROOT / 'scripts/check_asset_manifest.py')], + cwd=ROOT, capture_output=True, text=True, timeout=30, + ) + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + self.assertIn('Verified external asset manifest', result.stdout) + def setUp(self): self.temp = tempfile.TemporaryDirectory() self.addCleanup(self.temp.cleanup)