aboutsummaryrefslogtreecommitdiff
path: root/Tests/misc/filenames_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/misc/filenames_test.py')
-rw-r--r--Tests/misc/filenames_test.py245
1 files changed, 116 insertions, 129 deletions
diff --git a/Tests/misc/filenames_test.py b/Tests/misc/filenames_test.py
index bb7b63c2..f96156c0 100644
--- a/Tests/misc/filenames_test.py
+++ b/Tests/misc/filenames_test.py
@@ -1,136 +1,123 @@
import unittest
-from fontTools.misc.filenames import (
- userNameToFileName, handleClash1, handleClash2)
+from fontTools.misc.filenames import userNameToFileName, handleClash1, handleClash2
class UserNameToFilenameTest(unittest.TestCase):
+ def test_names(self):
+ self.assertEqual(userNameToFileName("a"), "a")
+ self.assertEqual(userNameToFileName("A"), "A_")
+ self.assertEqual(userNameToFileName("AE"), "A_E_")
+ self.assertEqual(userNameToFileName("Ae"), "A_e")
+ self.assertEqual(userNameToFileName("ae"), "ae")
+ self.assertEqual(userNameToFileName("aE"), "aE_")
+ self.assertEqual(userNameToFileName("a.alt"), "a.alt")
+ self.assertEqual(userNameToFileName("A.alt"), "A_.alt")
+ self.assertEqual(userNameToFileName("A.Alt"), "A_.A_lt")
+ self.assertEqual(userNameToFileName("A.aLt"), "A_.aL_t")
+ self.assertEqual(userNameToFileName("A.alT"), "A_.alT_")
+ self.assertEqual(userNameToFileName("T_H"), "T__H_")
+ self.assertEqual(userNameToFileName("T_h"), "T__h")
+ self.assertEqual(userNameToFileName("t_h"), "t_h")
+ self.assertEqual(userNameToFileName("F_F_I"), "F__F__I_")
+ self.assertEqual(userNameToFileName("f_f_i"), "f_f_i")
+ self.assertEqual(userNameToFileName("Aacute_V.swash"), "A_acute_V_.swash")
+ self.assertEqual(userNameToFileName(".notdef"), "_notdef")
+ self.assertEqual(userNameToFileName("con"), "_con")
+ self.assertEqual(userNameToFileName("CON"), "C_O_N_")
+ self.assertEqual(userNameToFileName("con.alt"), "_con.alt")
+ self.assertEqual(userNameToFileName("alt.con"), "alt._con")
+
+ def test_prefix_suffix(self):
+ prefix = "TEST_PREFIX"
+ suffix = "TEST_SUFFIX"
+ name = "NAME"
+ name_file = "N_A_M_E_"
+ self.assertEqual(
+ userNameToFileName(name, prefix=prefix, suffix=suffix),
+ prefix + name_file + suffix,
+ )
+
+ def test_collide(self):
+ prefix = "TEST_PREFIX"
+ suffix = "TEST_SUFFIX"
+ name = "NAME"
+ name_file = "N_A_M_E_"
+ collision_avoidance1 = "000000000000001"
+ collision_avoidance2 = "000000000000002"
+ exist = set()
+ generated = userNameToFileName(name, exist, prefix=prefix, suffix=suffix)
+ exist.add(generated.lower())
+ self.assertEqual(generated, prefix + name_file + suffix)
+ generated = userNameToFileName(name, exist, prefix=prefix, suffix=suffix)
+ exist.add(generated.lower())
+ self.assertEqual(generated, prefix + name_file + collision_avoidance1 + suffix)
+ generated = userNameToFileName(name, exist, prefix=prefix, suffix=suffix)
+ self.assertEqual(generated, prefix + name_file + collision_avoidance2 + suffix)
+
+ def test_ValueError(self):
+ with self.assertRaises(ValueError):
+ userNameToFileName(b"a")
+ with self.assertRaises(ValueError):
+ userNameToFileName({"a"})
+ with self.assertRaises(ValueError):
+ userNameToFileName(("a",))
+ with self.assertRaises(ValueError):
+ userNameToFileName(["a"])
+ with self.assertRaises(ValueError):
+ userNameToFileName(["a"])
+ with self.assertRaises(ValueError):
+ userNameToFileName(b"\xd8\x00")
+
+ def test_handleClash1(self):
+ prefix = ("0" * 5) + "."
+ suffix = "." + ("0" * 10)
+ existing = ["a" * 5]
+
+ e = list(existing)
+ self.assertEqual(
+ handleClash1(userName="A" * 5, existing=e, prefix=prefix, suffix=suffix),
+ "00000.AAAAA000000000000001.0000000000",
+ )
+
+ e = list(existing)
+ e.append(prefix + "aaaaa" + "1".zfill(15) + suffix)
+ self.assertEqual(
+ handleClash1(userName="A" * 5, existing=e, prefix=prefix, suffix=suffix),
+ "00000.AAAAA000000000000002.0000000000",
+ )
+
+ e = list(existing)
+ e.append(prefix + "AAAAA" + "2".zfill(15) + suffix)
+ self.assertEqual(
+ handleClash1(userName="A" * 5, existing=e, prefix=prefix, suffix=suffix),
+ "00000.AAAAA000000000000001.0000000000",
+ )
+
+ def test_handleClash2(self):
+ prefix = ("0" * 5) + "."
+ suffix = "." + ("0" * 10)
+ existing = [prefix + str(i) + suffix for i in range(100)]
+
+ e = list(existing)
+ self.assertEqual(
+ handleClash2(existing=e, prefix=prefix, suffix=suffix),
+ "00000.100.0000000000",
+ )
+
+ e = list(existing)
+ e.remove(prefix + "1" + suffix)
+ self.assertEqual(
+ handleClash2(existing=e, prefix=prefix, suffix=suffix), "00000.1.0000000000"
+ )
+
+ e = list(existing)
+ e.remove(prefix + "2" + suffix)
+ self.assertEqual(
+ handleClash2(existing=e, prefix=prefix, suffix=suffix), "00000.2.0000000000"
+ )
- def test_names(self):
- self.assertEqual(userNameToFileName("a"),"a")
- self.assertEqual(userNameToFileName("A"), "A_")
- self.assertEqual(userNameToFileName("AE"), "A_E_")
- self.assertEqual(userNameToFileName("Ae"), "A_e")
- self.assertEqual(userNameToFileName("ae"), "ae")
- self.assertEqual(userNameToFileName("aE"), "aE_")
- self.assertEqual(userNameToFileName("a.alt"), "a.alt")
- self.assertEqual(userNameToFileName("A.alt"), "A_.alt")
- self.assertEqual(userNameToFileName("A.Alt"), "A_.A_lt")
- self.assertEqual(userNameToFileName("A.aLt"), "A_.aL_t")
- self.assertEqual(userNameToFileName(u"A.alT"), "A_.alT_")
- self.assertEqual(userNameToFileName("T_H"), "T__H_")
- self.assertEqual(userNameToFileName("T_h"), "T__h")
- self.assertEqual(userNameToFileName("t_h"), "t_h")
- self.assertEqual(userNameToFileName("F_F_I"), "F__F__I_")
- self.assertEqual(userNameToFileName("f_f_i"), "f_f_i")
- self.assertEqual(
- userNameToFileName("Aacute_V.swash"),
- "A_acute_V_.swash")
- self.assertEqual(userNameToFileName(".notdef"), "_notdef")
- self.assertEqual(userNameToFileName("con"), "_con")
- self.assertEqual(userNameToFileName("CON"), "C_O_N_")
- self.assertEqual(userNameToFileName("con.alt"), "_con.alt")
- self.assertEqual(userNameToFileName("alt.con"), "alt._con")
-
- def test_prefix_suffix(self):
- prefix = "TEST_PREFIX"
- suffix = "TEST_SUFFIX"
- name = "NAME"
- name_file = "N_A_M_E_"
- self.assertEqual(
- userNameToFileName(name, prefix=prefix, suffix=suffix),
- prefix + name_file + suffix)
-
- def test_collide(self):
- prefix = "TEST_PREFIX"
- suffix = "TEST_SUFFIX"
- name = "NAME"
- name_file = "N_A_M_E_"
- collision_avoidance1 = "000000000000001"
- collision_avoidance2 = "000000000000002"
- exist = set()
- generated = userNameToFileName(
- name, exist, prefix=prefix, suffix=suffix)
- exist.add(generated.lower())
- self.assertEqual(generated, prefix + name_file + suffix)
- generated = userNameToFileName(
- name, exist, prefix=prefix, suffix=suffix)
- exist.add(generated.lower())
- self.assertEqual(
- generated,
- prefix + name_file + collision_avoidance1 + suffix)
- generated = userNameToFileName(
- name, exist, prefix=prefix, suffix=suffix)
- self.assertEqual(
- generated,
- prefix + name_file + collision_avoidance2+ suffix)
-
- def test_ValueError(self):
- with self.assertRaises(ValueError):
- userNameToFileName(b"a")
- with self.assertRaises(ValueError):
- userNameToFileName({"a"})
- with self.assertRaises(ValueError):
- userNameToFileName(("a",))
- with self.assertRaises(ValueError):
- userNameToFileName(["a"])
- with self.assertRaises(ValueError):
- userNameToFileName(["a"])
- with self.assertRaises(ValueError):
- userNameToFileName(b"\xd8\x00")
-
- def test_handleClash1(self):
- prefix = ("0" * 5) + "."
- suffix = "." + ("0" * 10)
- existing = ["a" * 5]
-
- e = list(existing)
- self.assertEqual(
- handleClash1(userName="A" * 5, existing=e, prefix=prefix,
- suffix=suffix),
- '00000.AAAAA000000000000001.0000000000'
- )
-
- e = list(existing)
- e.append(prefix + "aaaaa" + "1".zfill(15) + suffix)
- self.assertEqual(
- handleClash1(userName="A" * 5, existing=e, prefix=prefix,
- suffix=suffix),
- '00000.AAAAA000000000000002.0000000000'
- )
-
- e = list(existing)
- e.append(prefix + "AAAAA" + "2".zfill(15) + suffix)
- self.assertEqual(
- handleClash1(userName="A" * 5, existing=e, prefix=prefix,
- suffix=suffix),
- '00000.AAAAA000000000000001.0000000000'
- )
-
- def test_handleClash2(self):
- prefix = ("0" * 5) + "."
- suffix = "." + ("0" * 10)
- existing = [prefix + str(i) + suffix for i in range(100)]
-
- e = list(existing)
- self.assertEqual(
- handleClash2(existing=e, prefix=prefix, suffix=suffix),
- '00000.100.0000000000'
- )
-
- e = list(existing)
- e.remove(prefix + "1" + suffix)
- self.assertEqual(
- handleClash2(existing=e, prefix=prefix, suffix=suffix),
- '00000.1.0000000000'
- )
-
- e = list(existing)
- e.remove(prefix + "2" + suffix)
- self.assertEqual(
- handleClash2(existing=e, prefix=prefix, suffix=suffix),
- '00000.2.0000000000'
- )
if __name__ == "__main__":
- import sys
- sys.exit(unittest.main())
+ import sys
+
+ sys.exit(unittest.main())