common: add calculate_gradle_flavor_combination

This commit is contained in:
linsui 2025-04-26 01:50:08 +08:00 committed by Hans-Christoph Steiner
parent 6c054f62ca
commit e957583337
2 changed files with 20 additions and 0 deletions

View File

@ -58,6 +58,7 @@ from typing import List
import git
import glob
import io
import itertools
import os
import sys
import re
@ -4823,6 +4824,20 @@ def calculate_archive_policy(app, default):
return archive_policy
def calculate_gradle_flavor_combination(flavors):
"""Calculate all combinations of gradle flavors."""
combination_lists = itertools.product(*[[flavor, ''] for flavor in flavors])
combinations = [
re.sub(
r' +\w',
lambda pat: pat.group(0)[-1].upper(),
' '.join(combination_list).strip(),
)
for combination_list in combination_lists
]
return combinations
FDROIDORG_MIRRORS = [
{
'isPrimary': True,

View File

@ -3040,6 +3040,11 @@ class CommonTest(SetUpTearDownMixin, unittest.TestCase):
p = fdroidserver.common.FDroidPopen(['printenv', 'SOURCE_DATE_EPOCH'])
self.assertEqual(int(p.output), int(now.timestamp()))
def test_calculate_gradle_flavor_combination(self):
flavors = ['aa', 'BB', 'δδ']
combinations = ['aaBBΔδ', 'aaBB', 'aaΔδ', 'aa', 'BBΔδ', 'BB', 'δδ', '']
self.assertEqual(fdroidserver.common.calculate_gradle_flavor_combination(flavors), combinations)
APKS_WITH_JAR_SIGNATURES = (
(