1
0
forked from erp-dev/erp

fix: appversions

This commit is contained in:
2026-07-11 00:05:05 +08:00
parent 48e4782e1e
commit e91d06e4b6
26 changed files with 2582 additions and 19 deletions

View File

@@ -40,6 +40,8 @@ Env.read_env(str(BASE_DIR / '.env'))
# 允许一次请求携带更多表单字段,避免 admin 批量操作时报 TooManyFieldsSent
# Django 默认 DATA_UPLOAD_MAX_NUMBER_FIELDS=1000当一次 POST/GET 的字段(含重复 key过多会直接抛异常。
DATA_UPLOAD_MAX_NUMBER_FIELDS = env.int('DATA_UPLOAD_MAX_NUMBER_FIELDS', default=20000)
DATA_UPLOAD_MAX_MEMORY_SIZE = env.int('DATA_UPLOAD_MAX_MEMORY_SIZE', default=200 * 1024 * 1024)
FILE_UPLOAD_MAX_MEMORY_SIZE = env.int('FILE_UPLOAD_MAX_MEMORY_SIZE', default=10 * 1024 * 1024)
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/5.2/howto/deployment/checklist/

View File

@@ -119,6 +119,39 @@ class AppVersionAPITest(TestCase):
self.assertFalse(first.is_current)
self.assertTrue(second.is_current)
def test_package_file_does_not_override_download_url(self):
app_version = AppVersion.objects.create(
major=3,
minor=0,
build=300,
package_file="app_versions/broken-upload.apk",
download_url="https://example.com/manual-url.apk",
is_current=True,
)
response = self.client.get("/api/app-version/")
app_version.refresh_from_db()
self.assertEqual(app_version.download_url, "https://example.com/manual-url.apk")
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data["download_url"], "https://example.com/manual-url.apk")
def test_package_file_sets_download_url_when_url_is_empty(self):
app_version = AppVersion.objects.create(
major=3,
minor=1,
build=310,
package_file="app_versions/uploaded.apk",
is_current=True,
)
response = self.client.get("/api/app-version/")
app_version.refresh_from_db()
self.assertTrue(app_version.download_url.endswith("/app_versions/uploaded.apk"))
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data["download_url"], app_version.download_url)
def test_set_app_version_command_updates_cached_api_payload_with_defaults(self):
output = StringIO()
call_command(