filenames.py: fix doctests for py2.py3; import unicode_literals
This commit is contained in:
parent
ee38446982
commit
8747da76a4
@ -2,6 +2,7 @@
|
||||
User name to file name conversion.
|
||||
This was taken form the UFO 3 spec.
|
||||
"""
|
||||
from __future__ import unicode_literals
|
||||
from fontTools.misc.py23 import basestring, unicode
|
||||
|
||||
|
||||
@ -22,50 +23,50 @@ def userNameToFileName(userName, existing=[], prefix="", suffix=""):
|
||||
existing should be a case-insensitive list
|
||||
of all existing file names.
|
||||
|
||||
>>> userNameToFileName(u"a")
|
||||
u'a'
|
||||
>>> userNameToFileName(u"A")
|
||||
u'A_'
|
||||
>>> userNameToFileName(u"AE")
|
||||
u'A_E_'
|
||||
>>> userNameToFileName(u"Ae")
|
||||
u'A_e'
|
||||
>>> userNameToFileName(u"ae")
|
||||
u'ae'
|
||||
>>> userNameToFileName(u"aE")
|
||||
u'aE_'
|
||||
>>> userNameToFileName(u"a.alt")
|
||||
u'a.alt'
|
||||
>>> userNameToFileName(u"A.alt")
|
||||
u'A_.alt'
|
||||
>>> userNameToFileName(u"A.Alt")
|
||||
u'A_.A_lt'
|
||||
>>> userNameToFileName(u"A.aLt")
|
||||
u'A_.aL_t'
|
||||
>>> userNameToFileName(u"A.alT")
|
||||
u'A_.alT_'
|
||||
>>> userNameToFileName(u"T_H")
|
||||
u'T__H_'
|
||||
>>> userNameToFileName(u"T_h")
|
||||
u'T__h'
|
||||
>>> userNameToFileName(u"t_h")
|
||||
u't_h'
|
||||
>>> userNameToFileName(u"F_F_I")
|
||||
u'F__F__I_'
|
||||
>>> userNameToFileName(u"f_f_i")
|
||||
u'f_f_i'
|
||||
>>> userNameToFileName(u"Aacute_V.swash")
|
||||
u'A_acute_V_.swash'
|
||||
>>> userNameToFileName(u".notdef")
|
||||
u'_notdef'
|
||||
>>> userNameToFileName(u"con")
|
||||
u'_con'
|
||||
>>> userNameToFileName(u"CON")
|
||||
u'C_O_N_'
|
||||
>>> userNameToFileName(u"con.alt")
|
||||
u'_con.alt'
|
||||
>>> userNameToFileName(u"alt.con")
|
||||
u'alt._con'
|
||||
>>> userNameToFileName("a") == "a"
|
||||
True
|
||||
>>> userNameToFileName("A") == "A_"
|
||||
True
|
||||
>>> userNameToFileName("AE") == "A_E_"
|
||||
True
|
||||
>>> userNameToFileName("Ae") == "A_e"
|
||||
True
|
||||
>>> userNameToFileName("ae") == "ae"
|
||||
True
|
||||
>>> userNameToFileName("aE") == "aE_"
|
||||
True
|
||||
>>> userNameToFileName("a.alt") == "a.alt"
|
||||
True
|
||||
>>> userNameToFileName("A.alt") == "A_.alt"
|
||||
True
|
||||
>>> userNameToFileName("A.Alt") == "A_.A_lt"
|
||||
True
|
||||
>>> userNameToFileName("A.aLt") == "A_.aL_t"
|
||||
True
|
||||
>>> userNameToFileName(u"A.alT") == "A_.alT_"
|
||||
True
|
||||
>>> userNameToFileName("T_H") == "T__H_"
|
||||
True
|
||||
>>> userNameToFileName("T_h") == "T__h"
|
||||
True
|
||||
>>> userNameToFileName("t_h") == "t_h"
|
||||
True
|
||||
>>> userNameToFileName("F_F_I") == "F__F__I_"
|
||||
True
|
||||
>>> userNameToFileName("f_f_i") == "f_f_i"
|
||||
True
|
||||
>>> userNameToFileName("Aacute_V.swash") == "A_acute_V_.swash"
|
||||
True
|
||||
>>> userNameToFileName(".notdef") == "_notdef"
|
||||
True
|
||||
>>> userNameToFileName("con") == "_con"
|
||||
True
|
||||
>>> userNameToFileName("CON") == "C_O_N_"
|
||||
True
|
||||
>>> userNameToFileName("con.alt") == "_con.alt"
|
||||
True
|
||||
>>> userNameToFileName("alt.con") == "alt._con"
|
||||
True
|
||||
"""
|
||||
# the incoming name must be a unicode string
|
||||
if not isinstance(userName, unicode):
|
||||
@ -116,20 +117,23 @@ def handleClash1(userName, existing=[], prefix="", suffix=""):
|
||||
|
||||
>>> e = list(existing)
|
||||
>>> handleClash1(userName="A" * 5, existing=e,
|
||||
... prefix=prefix, suffix=suffix)
|
||||
'00000.AAAAA000000000000001.0000000000'
|
||||
... prefix=prefix, suffix=suffix) == (
|
||||
... '00000.AAAAA000000000000001.0000000000')
|
||||
True
|
||||
|
||||
>>> e = list(existing)
|
||||
>>> e.append(prefix + "aaaaa" + "1".zfill(15) + suffix)
|
||||
>>> handleClash1(userName="A" * 5, existing=e,
|
||||
... prefix=prefix, suffix=suffix)
|
||||
'00000.AAAAA000000000000002.0000000000'
|
||||
... prefix=prefix, suffix=suffix) == (
|
||||
... '00000.AAAAA000000000000002.0000000000')
|
||||
True
|
||||
|
||||
>>> e = list(existing)
|
||||
>>> e.append(prefix + "AAAAA" + "2".zfill(15) + suffix)
|
||||
>>> handleClash1(userName="A" * 5, existing=e,
|
||||
... prefix=prefix, suffix=suffix)
|
||||
'00000.AAAAA000000000000001.0000000000'
|
||||
... prefix=prefix, suffix=suffix) == (
|
||||
... '00000.AAAAA000000000000001.0000000000')
|
||||
True
|
||||
"""
|
||||
# if the prefix length + user name length + suffix length + 15 is at
|
||||
# or past the maximum length, silce 15 characters off of the user name
|
||||
@ -168,18 +172,21 @@ def handleClash2(existing=[], prefix="", suffix=""):
|
||||
>>> existing = [prefix + str(i) + suffix for i in range(100)]
|
||||
|
||||
>>> e = list(existing)
|
||||
>>> handleClash2(existing=e, prefix=prefix, suffix=suffix)
|
||||
'00000.100.0000000000'
|
||||
>>> handleClash2(existing=e, prefix=prefix, suffix=suffix) == (
|
||||
... '00000.100.0000000000')
|
||||
True
|
||||
|
||||
>>> e = list(existing)
|
||||
>>> e.remove(prefix + "1" + suffix)
|
||||
>>> handleClash2(existing=e, prefix=prefix, suffix=suffix)
|
||||
'00000.1.0000000000'
|
||||
>>> handleClash2(existing=e, prefix=prefix, suffix=suffix) == (
|
||||
... '00000.1.0000000000')
|
||||
True
|
||||
|
||||
>>> e = list(existing)
|
||||
>>> e.remove(prefix + "2" + suffix)
|
||||
>>> handleClash2(existing=e, prefix=prefix, suffix=suffix)
|
||||
'00000.2.0000000000'
|
||||
>>> handleClash2(existing=e, prefix=prefix, suffix=suffix) == (
|
||||
... '00000.2.0000000000')
|
||||
True
|
||||
"""
|
||||
# calculate the longest possible string
|
||||
maxLength = maxFileNameLength - len(prefix) - len(suffix)
|
||||
|
Loading…
x
Reference in New Issue
Block a user