+#!/usr/bin/env python3
+
+import inspect
+import optparse
+import os
+import sys
+import shutil
+import unittest
+import yaml
+import tempfile
+import textwrap
+
+localmodule = os.path.realpath(
+ os.path.join(os.path.dirname(inspect.getfile(inspect.currentframe())), '..'))
+if localmodule not in sys.path:
+ sys.path.insert(0, localmodule)
+
+import fdroidserver.common
+import fdroidserver.metadata
+
+
+class RewritemetaTest(unittest.TestCase):
+ ''' fdroidserver/metadata.py'''
+
+ def test_rewrite_yaml(self):
+
+ # setup/reset test dir if necessary and setup params
+ tmpdir = os.path.join(os.path.dirname(__file__), '..', '.testfiles')
+ if not os.path.exists(tmpdir):
+ os.makedirs(tmpdir)
+ testdir = tempfile.mkdtemp(prefix='test_rewrite_metadata_', dir=tmpdir)
+ fdroidserver.common.config = {'accepted_formats': ['txt', 'yml']}
+
+ # rewrite metadata
+ allapps = fdroidserver.metadata.read_metadata(xref=True)
+ for appid, app in allapps.items():
+ if appid == 'fake.ota.update':
+ fdroidserver.metadata.write_metadata(os.path.join(testdir, appid + '.yml'), app)
+
+ # assert rewrite result
+ with open(os.path.join(testdir, 'fake.ota.update.yml'), 'r', encoding='utf-8') as result:
+ with open('rewrite-metadata/fake.ota.update.yml', 'r', encoding='utf-8') as orig:
+ self.maxDiff = None
+ self.assertEqual(result.read(), orig.read())
+
+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(RewritemetaTest))
+ unittest.main()