1# This Source Code Form is subject to the terms of the Mozilla Public
2# License, v. 2.0. If a copy of the MPL was not distributed with this file,
3# You can obtain one at http://mozilla.org/MPL/2.0/.
4
5from __future__ import unicode_literals
6
7import string
8
9manifest_template = """# THIS FILE IS AUTOGENERATED BY ${caller} - DO NOT EDIT
10[DEFAULT]
11support-files =
12${supportfiles}
13
14${tests}
15"""
16
17reftest_template = """# THIS FILE IS AUTOGENERATED BY ${caller} - DO NOT EDIT
18
19${reftests}
20"""
21
22
23
24def substManifest(caller, test_files, support_files):
25    test_files = [f.lstrip('/') for f in test_files]
26    support_files = [f.lstrip('/') for f in support_files]
27
28    return string.Template(manifest_template).substitute({
29        'caller': caller,
30        'supportfiles': '\n'.join('  %s' % f for f in sorted(support_files)),
31        'tests': '\n'.join('[%s]' % f for f in sorted(test_files))
32    })
33
34
35def substReftestList(caller, tests):
36    def reftests(tests):
37        return "\n".join(" ".join(line) for line in tests)
38
39    return string.Template(reftest_template).substitute({
40        "caller": caller,
41        "reftests": reftests(tests),
42    })
43
44