1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
"""Check .inx file(s).
This is meant to be run an executable module, e.g.
python -m inkex.tester.test_inx_file *.inx
"""
import argparse
import sys
import unittest
from typing import List
from .inx import InxMixin
class InxTestCase(InxMixin, unittest.TestCase):
inx_files: List[str] = []
def test_inx_file_parameters(self):
for inx_file in self.inx_files:
with self.subTest(inx_file=inx_file):
self.assertInxIsGood(inx_file)
def test_inx_file_schema(self):
for inx_file in self.inx_files:
with self.subTest(inx_file=inx_file):
self.assertInxSchemaValid(inx_file)
def main(args=None):
"""Check .inx file(s)"""
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"-v",
"--verbose",
dest="verbosity",
action="store_const",
const=2,
help="Verbose output",
)
parser.add_argument(
"-q",
"--quiet",
dest="verbosity",
action="store_const",
const=0,
help="Quiet output",
)
parser.add_argument(
"inx_files", metavar="INX-FILE", nargs="+", help="An .inx file to check"
)
args = parser.parse_args(args, namespace=argparse.Namespace(verbosity=1))
InxTestCase.inx_files = args.inx_files
runner = unittest.TextTestRunner(verbosity=args.verbosity)
suite = unittest.defaultTestLoader.loadTestsFromTestCase(InxTestCase)
result = runner.run(suite)
sys.exit(not result.wasSuccessful())
if __name__ == "__main__":
main()
|