Remove the macfs module. This led to the deprecation of macostools.touched();
it completely relied on macfs and is a no-op on OS X according to code comments.
This commit is contained in:
parent
7e93587746
commit
5e2635103c
|
@ -1,241 +0,0 @@
|
|||
\section{\module{macfs} ---
|
||||
Various file system services}
|
||||
|
||||
\declaremodule{standard}{macfs}
|
||||
\platform{Mac}
|
||||
\modulesynopsis{Support for FSSpec, the Alias Manager,
|
||||
\program{finder} aliases, and the Standard File package.}
|
||||
|
||||
\deprecated{2.3}{The macfs module should be considered obsolete. For
|
||||
\class{FSSpec}, \class{FSRef} and \class{Alias} handling use the
|
||||
\module{Carbon.File} or \refmodule{Carbon.Folder} module. For file
|
||||
dialogs use the \refmodule{EasyDialogs} module. Also, this module is
|
||||
known to not work correctly with UFS partitions.}
|
||||
|
||||
This module provides access to Macintosh \class{FSSpec} handling, the
|
||||
Alias Manager, \program{finder} aliases and the Standard File package.
|
||||
\index{Macintosh Alias Manager}
|
||||
\index{Alias Manager, Macintosh}
|
||||
\index{Standard File}
|
||||
|
||||
Whenever a function or method expects a \var{file} argument, this
|
||||
argument can be one of three things:\ (1) a full or partial Macintosh
|
||||
pathname, (2) an \class{FSSpec} object or (3) a 3-tuple
|
||||
\code{(\var{wdRefNum}, \var{parID}, \var{name})} as described in
|
||||
\citetitle{Inside Macintosh:\ Files}. An \class{FSSpec} can point to
|
||||
a non-existing file, as long as the folder containing the file exists.
|
||||
Under MacPython the same is true for a pathname, but not under \UNIX-Python
|
||||
because of the way pathnames and FSRefs works. See Apple's documentation
|
||||
for details.
|
||||
|
||||
A description of aliases and the
|
||||
Standard File package can also be found there.
|
||||
|
||||
\begin{funcdesc}{FSSpec}{file}
|
||||
Create an \class{FSSpec} object for the specified file.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{RawFSSpec}{data}
|
||||
Create an \class{FSSpec} object given the raw data for the \C{}
|
||||
structure for the \class{FSSpec} as a string. This is mainly useful
|
||||
if you have obtained an \class{FSSpec} structure over a network.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{RawAlias}{data}
|
||||
Create an \class{Alias} object given the raw data for the \C{}
|
||||
structure for the alias as a string. This is mainly useful if you
|
||||
have obtained an \class{FSSpec} structure over a network.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{FInfo}{}
|
||||
Create a zero-filled \class{FInfo} object.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{ResolveAliasFile}{file}
|
||||
Resolve an alias file. Returns a 3-tuple \code{(\var{fsspec},
|
||||
\var{isfolder}, \var{aliased})} where \var{fsspec} is the resulting
|
||||
\class{FSSpec} object, \var{isfolder} is true if \var{fsspec} points
|
||||
to a folder and \var{aliased} is true if the file was an alias in the
|
||||
first place (otherwise the \class{FSSpec} object for the file itself
|
||||
is returned).
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{StandardGetFile}{\optional{type, \moreargs}}
|
||||
Present the user with a standard ``open input file''
|
||||
dialog. Optionally, you can pass up to four 4-character file types to limit
|
||||
the files the user can choose from. The function returns an \class{FSSpec}
|
||||
object and a flag indicating that the user completed the dialog
|
||||
without cancelling.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{PromptGetFile}{prompt\optional{, type, \moreargs}}
|
||||
Similar to \function{StandardGetFile()} but allows you to specify a
|
||||
prompt which will be displayed at the top of the dialog.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{StandardPutFile}{prompt\optional{, default}}
|
||||
Present the user with a standard ``open output file''
|
||||
dialog. \var{prompt} is the prompt string, and the optional
|
||||
\var{default} argument initializes the output file name. The function
|
||||
returns an \class{FSSpec} object and a flag indicating that the user
|
||||
completed the dialog without cancelling.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{GetDirectory}{\optional{prompt}}
|
||||
Present the user with a non-standard ``select a directory'' dialog. You
|
||||
have to first open the directory before clicking on the ``select current
|
||||
directory'' button. \var{prompt} is the prompt string which will be
|
||||
displayed at the top of the dialog. Return an \class{FSSpec} object and
|
||||
a success-indicator.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{SetFolder}{\optional{fsspec}}
|
||||
Set the folder that is initially presented to the user when one of
|
||||
the file selection dialogs is presented. \var{fsspec} should point to
|
||||
a file in the folder, not the folder itself (the file need not exist,
|
||||
though). If no argument is passed the folder will be set to the
|
||||
current directory, i.e. what \function{os.getcwd()} returns.
|
||||
|
||||
Note that starting with System 7.5 the user can change Standard File
|
||||
behaviour with the ``general controls'' control panel, thereby making
|
||||
this call inoperative.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{FindFolder}{where, which, create}
|
||||
Locates one of the ``special'' folders that Mac OS knows about, such as
|
||||
the trash or the Preferences folder. \var{where} is the disk to
|
||||
search, \var{which} is the 4-character string specifying which folder to
|
||||
locate. Setting \var{create} causes the folder to be created if it
|
||||
does not exist. Returns a \code{(\var{vrefnum}, \var{dirid})} tuple.
|
||||
|
||||
The constants for \var{where} and \var{which} can be obtained from the
|
||||
standard module \var{Carbon.Folders}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{NewAliasMinimalFromFullPath}{pathname}
|
||||
Return a minimal \class{alias} object that points to the given file, which
|
||||
must be specified as a full pathname. This is the only way to create an
|
||||
\class{Alias} pointing to a non-existing file.
|
||||
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{FindApplication}{creator}
|
||||
Locate the application with 4-character creator code \var{creator}. The
|
||||
function returns an \class{FSSpec} object pointing to the application.
|
||||
\end{funcdesc}
|
||||
|
||||
|
||||
\subsection{FSSpec Objects \label{fsspec-objects}}
|
||||
|
||||
\begin{memberdesc}[FSSpec]{data}
|
||||
The raw data from the FSSpec object, suitable for passing
|
||||
to other applications, for instance.
|
||||
\end{memberdesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{as_pathname}{}
|
||||
Return the full pathname of the file described by the \class{FSSpec}
|
||||
object.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{as_tuple}{}
|
||||
Return the \code{(\var{wdRefNum}, \var{parID}, \var{name})} tuple of
|
||||
the file described by the \class{FSSpec} object.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{NewAlias}{\optional{file}}
|
||||
Create an Alias object pointing to the file described by this
|
||||
FSSpec. If the optional \var{file} parameter is present the alias
|
||||
will be relative to that file, otherwise it will be absolute.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{NewAliasMinimal}{}
|
||||
Create a minimal alias pointing to this file.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{GetCreatorType}{}
|
||||
Return the 4-character creator and type of the file.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{SetCreatorType}{creator, type}
|
||||
Set the 4-character creator and type of the file.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{GetFInfo}{}
|
||||
Return a \class{FInfo} object describing the finder info for the file.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{SetFInfo}{finfo}
|
||||
Set the finder info for the file to the values given as \var{finfo}
|
||||
(an \class{FInfo} object).
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{GetDates}{}
|
||||
Return a tuple with three floating point values representing the
|
||||
creation date, modification date and backup date of the file.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[FSSpec]{SetDates}{crdate, moddate, backupdate}
|
||||
Set the creation, modification and backup date of the file. The values
|
||||
are in the standard floating point format used for times throughout
|
||||
Python.
|
||||
\end{methoddesc}
|
||||
|
||||
|
||||
\subsection{Alias Objects \label{alias-objects}}
|
||||
|
||||
\begin{memberdesc}[Alias]{data}
|
||||
The raw data for the Alias record, suitable for storing in a resource
|
||||
or transmitting to other programs.
|
||||
\end{memberdesc}
|
||||
|
||||
\begin{methoddesc}[Alias]{Resolve}{\optional{file}}
|
||||
Resolve the alias. If the alias was created as a relative alias you
|
||||
should pass the file relative to which it is. Return the FSSpec for
|
||||
the file pointed to and a flag indicating whether the \class{Alias} object
|
||||
itself was modified during the search process. If the file does
|
||||
not exist but the path leading up to it does exist a valid fsspec
|
||||
is returned.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[Alias]{GetInfo}{num}
|
||||
An interface to the \C{} routine \cfunction{GetAliasInfo()}.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}[Alias]{Update}{file\optional{, file2}}
|
||||
Update the alias to point to the \var{file} given. If \var{file2} is
|
||||
present a relative alias will be created.
|
||||
\end{methoddesc}
|
||||
|
||||
Note that it is currently not possible to directly manipulate a
|
||||
resource as an \class{Alias} object. Hence, after calling
|
||||
\method{Update()} or after \method{Resolve()} indicates that the alias
|
||||
has changed the Python program is responsible for getting the
|
||||
\member{data} value from the \class{Alias} object and modifying the
|
||||
resource.
|
||||
|
||||
|
||||
\subsection{FInfo Objects \label{finfo-objects}}
|
||||
|
||||
See \citetitle{Inside Macintosh: Files} for a complete description of what
|
||||
the various fields mean.
|
||||
|
||||
\begin{memberdesc}[FInfo]{Creator}
|
||||
The 4-character creator code of the file.
|
||||
\end{memberdesc}
|
||||
|
||||
\begin{memberdesc}[FInfo]{Type}
|
||||
The 4-character type code of the file.
|
||||
\end{memberdesc}
|
||||
|
||||
\begin{memberdesc}[FInfo]{Flags}
|
||||
The finder flags for the file as 16-bit integer. The bit values in
|
||||
\var{Flags} are defined in standard module \module{MACFS}.
|
||||
\end{memberdesc}
|
||||
|
||||
\begin{memberdesc}[FInfo]{Location}
|
||||
A Point giving the position of the file's icon in its folder.
|
||||
\end{memberdesc}
|
||||
|
||||
\begin{memberdesc}[FInfo]{Fldr}
|
||||
The folder the file is in (as an integer).
|
||||
\end{memberdesc}
|
|
@ -39,6 +39,7 @@ Tell the finder that some bits of finder-information such as creator
|
|||
or type for file \var{dst} has changed. The file can be specified by
|
||||
pathname or fsspec. This call should tell the finder to redraw the
|
||||
files icon.
|
||||
\deprecated{2.6}{The function is a no-op on OS X.}
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{datadesc}{BUFSIZ}
|
||||
|
|
|
@ -510,14 +510,7 @@ def hexbin(inp, out):
|
|||
ifp.close()
|
||||
|
||||
def _test():
|
||||
if os.name == 'mac':
|
||||
import macfs
|
||||
fss, ok = macfs.PromptGetFile('File to convert:')
|
||||
if not ok:
|
||||
sys.exit(0)
|
||||
fname = fss.as_pathname()
|
||||
else:
|
||||
fname = sys.argv[1]
|
||||
fname = sys.argv[1]
|
||||
binhex(fname, fname+'.hqx')
|
||||
hexbin(fname+'.hqx', fname+'.viahqx')
|
||||
#hexbin(fname, fname+'.unpacked')
|
||||
|
|
|
@ -1,198 +0,0 @@
|
|||
"""macfs - Pure Python module designed to be backward compatible with
|
||||
macfs and MACFS.
|
||||
"""
|
||||
import sys
|
||||
import struct
|
||||
import Carbon.Res
|
||||
import Carbon.File
|
||||
import warnings
|
||||
|
||||
warnings.warn("macfs is deprecated, use Carbon.File, Carbon.Folder or EasyDialogs",
|
||||
DeprecationWarning, stacklevel=2)
|
||||
|
||||
# First step: ensure we also emulate the MACFS module, which contained
|
||||
# all the constants
|
||||
|
||||
sys.modules['MACFS'] = sys.modules[__name__]
|
||||
|
||||
# Import all those constants
|
||||
from Carbon.Files import *
|
||||
from Carbon.Folders import *
|
||||
|
||||
# For some obscure historical reason these are here too:
|
||||
READ = 1
|
||||
WRITE = 2
|
||||
smAllScripts = -3
|
||||
|
||||
#
|
||||
# Find the epoch conversion for file dates in a way that works on OS9 and OSX
|
||||
import time
|
||||
if time.gmtime(0)[0] == 1970:
|
||||
_EPOCHCONVERT = -((1970-1904)*365 + 17) * (24*60*60) + 0x100000000L
|
||||
def _utc2time(utc):
|
||||
t = utc[1] + _EPOCHCONVERT
|
||||
return int(t)
|
||||
def _time2utc(t):
|
||||
t = int(t) - _EPOCHCONVERT
|
||||
if t < -0x7fffffff:
|
||||
t = t + 0x10000000L
|
||||
return (0, int(t), 0)
|
||||
else:
|
||||
def _utc2time(utc):
|
||||
t = utc[1]
|
||||
if t < 0:
|
||||
t = t + 0x100000000L
|
||||
return t
|
||||
def _time2utc(t):
|
||||
if t > 0x7fffffff:
|
||||
t = t - 0x100000000L
|
||||
return (0, int(t), 0)
|
||||
|
||||
# The old name of the error object:
|
||||
error = Carbon.File.Error
|
||||
|
||||
#
|
||||
# The various objects macfs used to export. We override them here, because some
|
||||
# of the method names are subtly different.
|
||||
#
|
||||
class FSSpec(Carbon.File.FSSpec):
|
||||
def as_fsref(self):
|
||||
return FSRef(self)
|
||||
|
||||
def NewAlias(self, src=None):
|
||||
return Alias(Carbon.File.NewAlias(src, self))
|
||||
|
||||
def GetCreatorType(self):
|
||||
finfo = self.FSpGetFInfo()
|
||||
return finfo.Creator, finfo.Type
|
||||
|
||||
def SetCreatorType(self, ctor, tp):
|
||||
finfo = self.FSpGetFInfo()
|
||||
finfo.Creator = ctor
|
||||
finfo.Type = tp
|
||||
self.FSpSetFInfo(finfo)
|
||||
|
||||
def GetFInfo(self):
|
||||
return self.FSpGetFInfo()
|
||||
|
||||
def SetFInfo(self, info):
|
||||
return self.FSpSetFInfo(info)
|
||||
|
||||
def GetDates(self):
|
||||
catInfoFlags = kFSCatInfoCreateDate|kFSCatInfoContentMod|kFSCatInfoBackupDate
|
||||
catinfo, d1, d2, d3 = FSRef(self).FSGetCatalogInfo(catInfoFlags)
|
||||
cdate = catinfo.createDate
|
||||
mdate = catinfo.contentModDate
|
||||
bdate = catinfo.backupDate
|
||||
return _utc2time(cdate), _utc2time(mdate), _utc2time(bdate)
|
||||
|
||||
def SetDates(self, cdate, mdate, bdate):
|
||||
catInfoFlags = kFSCatInfoCreateDate|kFSCatInfoContentMod|kFSCatInfoBackupDate
|
||||
catinfo = Carbon.File.FSCatalogInfo(
|
||||
createDate = _time2utc(cdate),
|
||||
contentModDate = _time2utc(mdate),
|
||||
backupDate = _time2utc(bdate))
|
||||
FSRef(self).FSSetCatalogInfo(catInfoFlags, catinfo)
|
||||
|
||||
class FSRef(Carbon.File.FSRef):
|
||||
def as_fsspec(self):
|
||||
return FSSpec(self)
|
||||
|
||||
class Alias(Carbon.File.Alias):
|
||||
|
||||
def GetInfo(self, index):
|
||||
return self.GetAliasInfo(index)
|
||||
|
||||
def Update(self, *args):
|
||||
pass # print "Alias.Update not yet implemented"
|
||||
|
||||
def Resolve(self, src=None):
|
||||
fss, changed = self.ResolveAlias(src)
|
||||
return FSSpec(fss), changed
|
||||
|
||||
from Carbon.File import FInfo
|
||||
|
||||
# Backward-compatible type names:
|
||||
FSSpecType = FSSpec
|
||||
FSRefType = FSRef
|
||||
AliasType = Alias
|
||||
FInfoType = FInfo
|
||||
|
||||
# Global functions:
|
||||
def ResolveAliasFile(fss, chain=1):
|
||||
fss, isdir, isalias = Carbon.File.ResolveAliasFile(fss, chain)
|
||||
return FSSpec(fss), isdir, isalias
|
||||
|
||||
def RawFSSpec(data):
|
||||
return FSSpec(rawdata=data)
|
||||
|
||||
def RawAlias(data):
|
||||
return Alias(rawdata=data)
|
||||
|
||||
def FindApplication(*args):
|
||||
raise NotImplementedError, "FindApplication no longer implemented"
|
||||
|
||||
def NewAliasMinimalFromFullPath(path):
|
||||
return Alias(Carbon.File.NewAliasMinimalFromFullPath(path, '', ''))
|
||||
|
||||
# Another global function:
|
||||
from Carbon.Folder import FindFolder
|
||||
|
||||
#
|
||||
# Finally the old Standard File routine emulators.
|
||||
#
|
||||
|
||||
_curfolder = None
|
||||
|
||||
def StandardGetFile(*typelist):
|
||||
"""Ask for an input file, optionally specifying 4-char file types that are
|
||||
allowable"""
|
||||
return PromptGetFile('', *typelist)
|
||||
|
||||
def PromptGetFile(prompt, *typelist):
|
||||
"""Ask for an input file giving the user a prompt message. Optionally you can
|
||||
specifying 4-char file types that are allowable"""
|
||||
import EasyDialogs
|
||||
warnings.warn("macfs.StandardGetFile and friends are deprecated, use EasyDialogs.AskFileForOpen",
|
||||
DeprecationWarning, stacklevel=2)
|
||||
if not typelist:
|
||||
typelist = None
|
||||
fss = EasyDialogs.AskFileForOpen(message=prompt, wanted=FSSpec,
|
||||
typeList=typelist, defaultLocation=_handleSetFolder())
|
||||
return fss, not fss is None
|
||||
|
||||
def StandardPutFile(prompt, default=None):
|
||||
"""Ask the user for an output file, with a prompt. Optionally you cn supply a
|
||||
default output filename"""
|
||||
import EasyDialogs
|
||||
warnings.warn("macfs.StandardGetFile and friends are deprecated, use EasyDialogs.AskFileForOpen",
|
||||
DeprecationWarning, stacklevel=2)
|
||||
fss = EasyDialogs.AskFileForSave(wanted=FSSpec, message=prompt,
|
||||
savedFileName=default, defaultLocation=_handleSetFolder())
|
||||
return fss, not fss is None
|
||||
|
||||
def SetFolder(folder):
|
||||
global _curfolder
|
||||
warnings.warn("macfs.StandardGetFile and friends are deprecated, use EasyDialogs.AskFileForOpen",
|
||||
DeprecationWarning, stacklevel=2)
|
||||
if _curfolder:
|
||||
rv = FSSpec(_curfolder)
|
||||
else:
|
||||
rv = None
|
||||
_curfolder = folder
|
||||
return rv
|
||||
|
||||
def _handleSetFolder():
|
||||
global _curfolder
|
||||
rv = _curfolder
|
||||
_curfolder = None
|
||||
return rv
|
||||
|
||||
def GetDirectory(prompt=None):
|
||||
"""Ask the user to select a folder. Optionally you can give a prompt."""
|
||||
import EasyDialogs
|
||||
warnings.warn("macfs.StandardGetFile and friends are deprecated, use EasyDialogs.AskFileForOpen",
|
||||
DeprecationWarning, stacklevel=2)
|
||||
fss = EasyDialogs.AskFolder(message=prompt, wanted=FSSpec,
|
||||
defaultLocation=_handleSetFolder())
|
||||
return fss, not fss is None
|
|
@ -65,21 +65,9 @@ def mkdirs(dst):
|
|||
|
||||
def touched(dst):
|
||||
"""Tell the finder a file has changed. No-op on MacOSX."""
|
||||
if sys.platform != 'mac': return
|
||||
import warnings
|
||||
warnings.filterwarnings("ignore", "macfs.*", DeprecationWarning, __name__)
|
||||
import macfs
|
||||
file_fss = macfs.FSSpec(dst)
|
||||
vRefNum, dirID, name = file_fss.as_tuple()
|
||||
dir_fss = macfs.FSSpec((vRefNum, dirID, ''))
|
||||
crdate, moddate, bkdate = dir_fss.GetDates()
|
||||
now = time.time()
|
||||
if now == moddate:
|
||||
now = now + 1
|
||||
try:
|
||||
dir_fss.SetDates(crdate, now, bkdate)
|
||||
except macfs.error:
|
||||
pass
|
||||
warnings.warn("macostools.touched() has been deprecated",
|
||||
DeprecationWarning, 2)
|
||||
|
||||
def touched_ae(dst):
|
||||
"""Tell the finder a file has changed"""
|
||||
|
@ -129,7 +117,6 @@ def copy(src, dst, createpath=0, copydates=1, forcetype=None):
|
|||
dstfsr = File.FSRef(dst)
|
||||
catinfo, _, _, _ = srcfsr.FSGetCatalogInfo(Files.kFSCatInfoAllDates)
|
||||
dstfsr.FSSetCatalogInfo(Files.kFSCatInfoAllDates, catinfo)
|
||||
touched(dstfss)
|
||||
|
||||
def copytree(src, dst, copydates=1):
|
||||
"""Copy a complete file tree to a new destination"""
|
||||
|
|
|
@ -1198,7 +1198,6 @@ _expectations = {
|
|||
test_imgfile
|
||||
test_linuxaudiodev
|
||||
test_locale
|
||||
test_macfs
|
||||
test_macostools
|
||||
test_nis
|
||||
test_ossaudiodev
|
||||
|
@ -1235,7 +1234,6 @@ _expectations = {
|
|||
test_gzip
|
||||
test_imgfile
|
||||
test_linuxaudiodev
|
||||
test_macfs
|
||||
test_macostools
|
||||
test_nis
|
||||
test_ossaudiodev
|
||||
|
@ -1264,7 +1262,6 @@ _expectations = {
|
|||
test_imgfile
|
||||
test_linuxaudiodev
|
||||
test_locale
|
||||
test_macfs
|
||||
test_macostools
|
||||
test_nis
|
||||
test_normalization
|
||||
|
@ -1298,7 +1295,6 @@ _expectations = {
|
|||
test_imgfile
|
||||
test_linuxaudiodev
|
||||
test_locale
|
||||
test_macfs
|
||||
test_macostools
|
||||
test_nis
|
||||
test_ossaudiodev
|
||||
|
@ -1340,7 +1336,7 @@ class _ExpectedSkips:
|
|||
self.expected.add('test_imageop')
|
||||
|
||||
if not sys.platform in ("mac", "darwin"):
|
||||
MAC_ONLY = ["test_macostools", "test_macfs", "test_aepack",
|
||||
MAC_ONLY = ["test_macostools", "test_aepack",
|
||||
"test_plistlib", "test_scriptpackages"]
|
||||
for skip in MAC_ONLY:
|
||||
self.expected.add(skip)
|
||||
|
|
|
@ -1,78 +0,0 @@
|
|||
# Copyright (C) 2003 Python Software Foundation
|
||||
|
||||
import unittest
|
||||
import warnings
|
||||
warnings.filterwarnings("ignore", "macfs.*", DeprecationWarning, __name__)
|
||||
import macfs
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
from test import test_support
|
||||
|
||||
class TestMacfs(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
fp = open(test_support.TESTFN, 'w')
|
||||
fp.write('hello world\n')
|
||||
fp.close()
|
||||
|
||||
def tearDown(self):
|
||||
try:
|
||||
os.unlink(test_support.TESTFN)
|
||||
except:
|
||||
pass
|
||||
|
||||
def test_fsspec(self):
|
||||
fss = macfs.FSSpec(test_support.TESTFN)
|
||||
self.assertEqual(os.path.realpath(test_support.TESTFN), fss.as_pathname())
|
||||
|
||||
def test_fsref(self):
|
||||
fsr = macfs.FSRef(test_support.TESTFN)
|
||||
self.assertEqual(os.path.realpath(test_support.TESTFN), fsr.as_pathname())
|
||||
|
||||
def test_fsref_unicode(self):
|
||||
if sys.getfilesystemencoding():
|
||||
testfn_unicode = unicode(test_support.TESTFN)
|
||||
fsr = macfs.FSRef(testfn_unicode)
|
||||
self.assertEqual(os.path.realpath(test_support.TESTFN), fsr.as_pathname())
|
||||
|
||||
def test_coercion(self):
|
||||
fss = macfs.FSSpec(test_support.TESTFN)
|
||||
fsr = macfs.FSRef(test_support.TESTFN)
|
||||
fss2 = fsr.as_fsspec()
|
||||
fsr2 = fss.as_fsref()
|
||||
self.assertEqual(fss.as_pathname(), fss2.as_pathname())
|
||||
self.assertEqual(fsr.as_pathname(), fsr2.as_pathname())
|
||||
|
||||
def test_dates(self):
|
||||
import time
|
||||
fss = macfs.FSSpec(test_support.TESTFN)
|
||||
now = int(time.time())
|
||||
fss.SetDates(now, now+1, now+2)
|
||||
dates = fss.GetDates()
|
||||
self.assertEqual(dates, (now, now+1, now+2))
|
||||
|
||||
def test_ctor_type(self):
|
||||
fss = macfs.FSSpec(test_support.TESTFN)
|
||||
fss.SetCreatorType('Pyth', 'TEXT')
|
||||
filecr, filetp = fss.GetCreatorType()
|
||||
self.assertEqual((filecr, filetp), ('Pyth', 'TEXT'))
|
||||
|
||||
def test_alias(self):
|
||||
fss = macfs.FSSpec(test_support.TESTFN)
|
||||
alias = fss.NewAlias()
|
||||
fss2, changed = alias.Resolve()
|
||||
self.assertEqual(changed, 0)
|
||||
self.assertEqual(fss.as_pathname(), fss2.as_pathname())
|
||||
|
||||
|
||||
def test_fss_alias(self):
|
||||
fss = macfs.FSSpec(test_support.TESTFN)
|
||||
|
||||
|
||||
def test_main():
|
||||
test_support.run_unittest(TestMacfs)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_main()
|
|
@ -51,7 +51,11 @@ class TestMacostools(unittest.TestCase):
|
|||
|
||||
def test_touched(self):
|
||||
# This really only tests that nothing unforeseen happens.
|
||||
macostools.touched(test_support.TESTFN)
|
||||
import warnings
|
||||
with test_support.guard_warnings_filter():
|
||||
warnings.filterwarnings('ignore', 'macostools.touched*',
|
||||
DeprecationWarning)
|
||||
macostools.touched(test_support.TESTFN)
|
||||
|
||||
def test_copy(self):
|
||||
try:
|
||||
|
|
|
@ -883,6 +883,10 @@ Windows
|
|||
Mac
|
||||
---
|
||||
|
||||
- Removed the macfs module. It had been deprecated since Python 2.5. This
|
||||
lead to the deprecation of macostools.touched() as it relied solely on macfs
|
||||
and was a no-op under OS X.
|
||||
|
||||
|
||||
What's New in Python 2.5 release candidate 1?
|
||||
=============================================
|
||||
|
|
Loading…
Reference in New Issue