def clean_tarinfo(ti, mtime=None): """Clean metadata from a TarInfo object to make it more reproducible. - Set uid & gid to 0 - Set uname and gname to "" - Normalise permissions to 644 or 755 - Set mtime if not None """ ti = copy(ti) ti.uid = 0 ti.gid = 0 ti.uname = '' ti.gname = '' ti.mode = common.normalize_file_permissions(ti.mode) if mtime is not None: ti.mtime = mtime return ti
def test_normalize_file_permissions(): assert normalize_file_permissions(0o100664) == 0o100644 # regular file assert normalize_file_permissions(0o40775) == 0o40755 # directory