build: sort fdroid build --all by most recently changed first

This commit is contained in:
Hans-Christoph Steiner 2017-11-29 22:03:26 +01:00
parent bf09109c49
commit 30b2f5a48a
3 changed files with 65 additions and 16 deletions

View file

@ -2,9 +2,12 @@
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
import glob
import inspect
import optparse
import os
import random
import shutil
import sys
import unittest
import yaml
@ -120,6 +123,36 @@ class MetadataTest(unittest.TestCase):
self.maxDiff = None
self.assertEqual(result.read(), orig.read())
def test_read_metadata_sort_by_time(self):
# setup/reset test dir if necessary and setup params
testbasedir = os.path.dirname(__file__)
tmpdir = os.path.join(testbasedir, '..', '.testfiles')
if not os.path.exists(tmpdir):
os.makedirs(tmpdir)
testdir = tempfile.mkdtemp(prefix='test_read_metadata_sort_by_time_', dir=tmpdir)
metadatadir = os.path.join(testdir, 'metadata')
os.makedirs(metadatadir)
fdroidserver.common.config = {'accepted_formats': ['txt']}
randomlist = []
randomapps = glob.glob(os.path.join(testbasedir, 'metadata', '*.txt'))
random.shuffle(randomapps)
i = 1
for f in randomapps:
shutil.copy(f, metadatadir)
new = os.path.join(metadatadir, os.path.basename(f))
stat = os.stat(new)
os.utime(new, (stat.st_ctime, stat.st_mtime + i))
# prepend new item so newest is always first
randomlist = [os.path.basename(f)[:-4]] + randomlist
i += 1
os.chdir(testdir)
allapps = fdroidserver.metadata.read_metadata(xref=True, sort_by_time=True)
allappids = []
for appid, app in allapps.items():
allappids.append(appid)
self.assertEqual(randomlist, allappids)
if __name__ == "__main__":
parser = optparse.OptionParser()