mirror of
https://github.com/google/pebble.git
synced 2025-07-20 22:33:54 -04:00
Import of the watch repository from Pebble
This commit is contained in:
commit
3b92768480
10334 changed files with 2564465 additions and 0 deletions
96
third_party/pbl/pblconvert/tests/svg2pdc/test_parse_args.py
vendored
Normal file
96
third_party/pbl/pblconvert/tests/svg2pdc/test_parse_args.py
vendored
Normal file
|
@ -0,0 +1,96 @@
|
|||
import os
|
||||
import tempfile
|
||||
import unittest
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
from pblconvert.pblconvert import parse_args
|
||||
from pblconvert import pblconvert
|
||||
|
||||
class FakeFile():
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
|
||||
class FakeFileType(object):
|
||||
def __init__(self, mode='r', bufsize=-1):
|
||||
self._mode = mode
|
||||
self._bufsize = bufsize
|
||||
|
||||
def __call__(self, string):
|
||||
# the special argument "-" means sys.std{in,out}
|
||||
if string == '-':
|
||||
if 'r' in self._mode:
|
||||
return sys.stdin
|
||||
elif 'w' in self._mode:
|
||||
return sys.stdout
|
||||
else:
|
||||
msg = _('argument "-" with mode %r') % self._mode
|
||||
raise ValueError(msg)
|
||||
|
||||
return FakeFile(string)
|
||||
|
||||
class ParseArgsTests(unittest.TestCase):
|
||||
def fake_path_exists(self, path):
|
||||
if path in self.files:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def setUp(self):
|
||||
self.files = []
|
||||
argparse.FileType = FakeFileType
|
||||
os.path.exists = self.fake_path_exists
|
||||
self.files.append("temp.svg")
|
||||
|
||||
def test_requires_in_file(self):
|
||||
with self.assertRaises(SystemExit):
|
||||
parse_args(["--outformat", "pdc"])
|
||||
|
||||
def test_outfile_defaults_to_stdout(self):
|
||||
parsed = parse_args(["-i", "-", "--outformat", "pdc"])
|
||||
self.assertEqual(parsed.infile, sys.stdin)
|
||||
self.assertEqual(parsed.outfile, sys.stdout)
|
||||
|
||||
def test_outfile_defaults_to_file(self):
|
||||
parsed = parse_args(["--infile", "temp.svg", "--outformat", "pdc"])
|
||||
self.assertEqual(parsed.infile.name, "temp.svg")
|
||||
expected = os.path.splitext("temp.svg")[0] + ".pdc"
|
||||
self.assertEqual(parsed.outfile.name, expected)
|
||||
|
||||
def test_explicit_outfile_influences_format(self):
|
||||
parsed = parse_args(["-i", "-", "--outfile", "test.png"])
|
||||
self.assertEqual(parsed.outformat, "png")
|
||||
parsed = parse_args(["-i", "-", "--outfile", "test.svg"])
|
||||
self.assertEqual(parsed.outformat, "svg")
|
||||
parsed = parse_args(["-i", "-", "--outfile", "test.pdc"])
|
||||
self.assertEqual(parsed.outformat, "pdc")
|
||||
parsed = parse_args(["-i", "-", "--outfile", "test.any"])
|
||||
self.assertEqual(parsed.outformat, "pdc")
|
||||
|
||||
def test_explicit_format_overrules_derived_format(self):
|
||||
parsed = parse_args(["-i", "-", "--outformat", "svg", "--outfile", "test.png"])
|
||||
self.assertEqual(parsed.outformat, "svg")
|
||||
|
||||
def test_implicit_filename_avoids_override(self):
|
||||
self.files.append("exists.svg")
|
||||
self.files.append("exists.pdc")
|
||||
self.files.append("exists_3.pdc")
|
||||
parsed = parse_args(["-i", "exists.svg", "--outformat", "pdc"])
|
||||
self.assertEqual(os.path.basename(parsed.outfile.name), "exists_2.pdc")
|
||||
self.files.append("exists_2.pdc")
|
||||
parsed = parse_args(["-i", "exists.svg", "--outformat", "pdc"])
|
||||
self.assertEqual(os.path.basename(parsed.outfile.name), "exists_4.pdc")
|
||||
|
||||
def test_error_if_out_of_alternatives_for_implicit_name(self):
|
||||
old_value = pblconvert.LIMIT_WHEN_AVOIDING_OVERRIDE
|
||||
try:
|
||||
self.files.append("exists.svg")
|
||||
self.files.append("exists.pdc")
|
||||
pblconvert.LIMIT_WHEN_AVOIDING_OVERRIDE = 2
|
||||
with self.assertRaises(IOError):
|
||||
parse_args(["-i", "exists.svg", "--outformat", "pdc"])
|
||||
finally:
|
||||
pblconvert.LIMIT_WHEN_AVOIDING_OVERRIDE = old_value
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
Add table
Add a link
Reference in a new issue