chiark / gitweb /
ade5554858eb7aeb69624c7bd569581c2fd7201a
[fdroidserver.git] / tests / rewritemeta.TestCase
1 #!/usr/bin/env python3
2
3 import inspect
4 import optparse
5 import os
6 import sys
7 import shutil
8 import unittest
9 import yaml
10 import tempfile
11 import textwrap
12
13 localmodule = os.path.realpath(
14     os.path.join(os.path.dirname(inspect.getfile(inspect.currentframe())), '..'))
15 if localmodule not in sys.path:
16     sys.path.insert(0, localmodule)
17
18 import fdroidserver.common
19 import fdroidserver.metadata
20
21
22 class RewritemetaTest(unittest.TestCase):
23     '''    fdroidserver/metadata.py'''
24
25     def test_rewrite_yaml(self):
26
27         # setup/reset test dir if necessary and setup params
28         tmpdir = os.path.join(os.path.dirname(__file__), '..', '.testfiles')
29         if not os.path.exists(tmpdir):
30             os.makedirs(tmpdir)
31         testdir = tempfile.mkdtemp(prefix='test_rewrite_metadata_', dir=tmpdir)
32         fdroidserver.common.config = {'accepted_formats': ['txt', 'yml']}
33
34         # rewrite metadata
35         allapps = fdroidserver.metadata.read_metadata(xref=True)
36         for appid, app in allapps.items():
37             if appid == 'fake.ota.update':
38                 fdroidserver.metadata.write_metadata(os.path.join(testdir, appid + '.yml'), app)
39
40         # assert rewrite result
41         with open(os.path.join(testdir, 'fake.ota.update.yml'), 'r', encoding='utf-8') as result:
42             with open('rewrite-metadata/fake.ota.update.yml', 'r', encoding='utf-8') as orig:
43                 self.maxDiff = None
44                 self.assertEqual(result.read(), orig.read())
45
46 if __name__ == "__main__":
47     parser = optparse.OptionParser()
48     parser.add_option("-v", "--verbose", action="store_true", default=False,
49                       help="Spew out even more information than normal")
50     (fdroidserver.common.options, args) = parser.parse_args(['--verbose'])
51
52     newSuite = unittest.TestSuite()
53     newSuite.addTest(unittest.makeSuite(RewritemetaTest))
54     unittest.main()