mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-14 19:10:11 +01:00
b1a943d562
When making code changes related to the metadata parsing, it is useful to see how the internal format has changed by seeing the differences in the dump files. Those files are currently in the binary .pickle format. This just straight converts them to YAML, which is a text format, so that normal diff tools work to see changes. The dump files are named .yaml instead of .yml since .yml is used for hand- edited YAML files for fdroiddata/metadata, while these dump files here are a human readable form of a Python pickle.
62 lines
2.0 KiB
Python
Executable File
62 lines
2.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
|
|
|
|
import inspect
|
|
import optparse
|
|
import os
|
|
import sys
|
|
import unittest
|
|
import yaml
|
|
|
|
localmodule = os.path.realpath(
|
|
os.path.join(os.path.dirname(inspect.getfile(inspect.currentframe())), '..'))
|
|
print('localmodule: ' + localmodule)
|
|
if localmodule not in sys.path:
|
|
sys.path.insert(0, localmodule)
|
|
|
|
import fdroidserver.common
|
|
import fdroidserver.metadata
|
|
|
|
|
|
class MetadataTest(unittest.TestCase):
|
|
'''fdroidserver/metadata.py'''
|
|
|
|
def test_read_metadata(self):
|
|
testsdir = os.path.dirname(__file__)
|
|
os.chdir(testsdir)
|
|
|
|
self.maxDiff = None
|
|
|
|
# these need to be set to prevent code running on None, only
|
|
# 'accepted_formats' is actually used in metadata.py
|
|
config = dict()
|
|
config['sdk_path'] = '/opt/android-sdk'
|
|
config['ndk_paths'] = dict()
|
|
config['accepted_formats'] = ['json', 'txt', 'yml']
|
|
fdroidserver.common.config = config
|
|
|
|
apps = fdroidserver.metadata.read_metadata(xref=True)
|
|
for appid in ('org.smssecure.smssecure', 'org.adaway', 'org.videolan.vlc'):
|
|
app = apps[appid]
|
|
savepath = os.path.join('metadata', 'dump', appid + '.yaml')
|
|
frommeta = app.field_dict()
|
|
self.assertTrue(appid in apps)
|
|
with open(savepath, 'r') as f:
|
|
frompickle = yaml.load(f)
|
|
self.assertEqual(frommeta, frompickle)
|
|
# Uncomment to overwrite
|
|
# with open(savepath, 'w') as f:
|
|
# yaml.dump(frommeta, f, default_flow_style=False)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = optparse.OptionParser()
|
|
parser.add_option("-v", "--verbose", action="store_true", default=False,
|
|
help="Spew out even more information than normal")
|
|
(fdroidserver.common.options, args) = parser.parse_args(['--verbose'])
|
|
|
|
newSuite = unittest.TestSuite()
|
|
newSuite.addTest(unittest.makeSuite(MetadataTest))
|
|
unittest.main()
|