Example #1
0
def pathlist2savefilename(pathlist, encoding):
    fullpath = u''
    for elem in pathlist:
        u = bin2unicode(elem, encoding)
        b = fix_filebasename(u)
        fullpath = os.path.join(fullpath, b)
    return fullpath
Example #2
0
def pathlist2savefilename(pathlist,encoding):
    fullpath = u''
    for elem in pathlist:
        u = bin2unicode(elem,encoding)
        b = fix_filebasename(u)
        fullpath = os.path.join(fullpath,b)
    return fullpath
Example #3
0
    def test_fix_filebasename(self):
        default_name = '_'
        win_name_table = {
            'abcdef': 'abcdef',
            '.': default_name,
            '..': default_name,
            '': default_name,
            ' ': default_name,
            '   ': default_name,
            os.path.join('a', 'b'): 'a_b',
            '\x5c\x61': '_a',  # \x5c = '\\'
            '\x92\x97': '\x92\x97',
            '\x5c\x5c': '__',
            '\x5c\x61\x5c': '_a_',
            '\x2f\x61': '_a',  # \x2f = '/'
            '\x92\x97': '\x92\x97',
            '\x2f\x2f': '__',
            '\x2f\x61\x2f': '_a_',
            'a' * 300: 'a' * 255
        }
        for c in '"*/:<>?\\|':
            win_name_table[c] = default_name

        linux_name_table = {
            'abcdef': 'abcdef',
            '.': default_name,
            '..': default_name,
            '': default_name,
            ' ': default_name,
            '   ': default_name,
            os.path.join('a', 'b'): 'a_b',
            '\x2f\x61': '_a',  # \x2f = '/'
            '\x92\x97': '\x92\x97',
            '\x2f\x2f': '__',
            '\x2f\x61\x2f': '_a_',
            'a' * 300: 'a' * 255
        }

        if sys.platform.startswith('win'):
            name_table = win_name_table
        else:
            name_table = linux_name_table

        for name in name_table:
            fixedname = fix_filebasename(name)
            assert fixedname == name_table[name], (fixedname, name_table[name])
Example #4
0
    def test_fix_filebasename(self):
        default_name = "_"
        win_name_table = {
            "abcdef": "abcdef",
            ".": default_name,
            "..": default_name,
            "": default_name,
            " ": default_name,
            "   ": default_name,
            os.path.join("a", "b"): "a_b",
            "\x5c\x61": "_a",  # \x5c = '\\'
            "\x92\x97": "\x92\x97",
            "\x5c\x5c": "__",
            "\x5c\x61\x5c": "_a_",
            "\x2f\x61": "_a",  # \x2f = '/'
            "\x92\x97": "\x92\x97",
            "\x2f\x2f": "__",
            "\x2f\x61\x2f": "_a_",
            "a" * 300: "a" * 255,
        }
        for c in '"*/:<>?\\|':
            win_name_table[c] = default_name

        linux_name_table = {
            "abcdef": "abcdef",
            ".": default_name,
            "..": default_name,
            "": default_name,
            " ": default_name,
            "   ": default_name,
            os.path.join("a", "b"): "a_b",
            "\x2f\x61": "_a",  # \x2f = '/'
            "\x92\x97": "\x92\x97",
            "\x2f\x2f": "__",
            "\x2f\x61\x2f": "_a_",
            "a" * 300: "a" * 255,
        }

        if sys.platform.startswith("win"):
            name_table = win_name_table
        else:
            name_table = linux_name_table

        for name in name_table:
            fixedname = fix_filebasename(name)
            assert fixedname == name_table[name], (fixedname, name_table[name])