[Pymoul-svn] SF.net SVN: pymoul: [255] pymoul/trunk/src/moul/osdependent/tests/ test_singleapp.py
Status: Alpha
Brought to you by:
tiran
From: <ti...@us...> - 2007-03-15 07:10:51
|
Revision: 255 http://pymoul.svn.sourceforge.net/pymoul/?rev=255&view=rev Author: tiran Date: 2007-03-15 00:10:46 -0700 (Thu, 15 Mar 2007) Log Message: ----------- Refactored unit tests for single app Modified Paths: -------------- pymoul/trunk/src/moul/osdependent/tests/test_singleapp.py Modified: pymoul/trunk/src/moul/osdependent/tests/test_singleapp.py =================================================================== --- pymoul/trunk/src/moul/osdependent/tests/test_singleapp.py 2007-03-14 16:04:32 UTC (rev 254) +++ pymoul/trunk/src/moul/osdependent/tests/test_singleapp.py 2007-03-15 07:10:46 UTC (rev 255) @@ -29,19 +29,17 @@ from doctest import DocTestSuite from shutil import rmtree from subprocess import Popen +from subprocess import PIPE from moul.osdependent.singleapp import LOCK_SH, LOCK_NB from moul.osdependent.singleapp import SimpleSingleApp from moul.osdependent.singleapp import lock from moul.osdependent.singleapp import unlock -tmpdir = tempfile.mkdtemp() -testfile = os.path.join(tmpdir, 'test.lck') - if os.name == 'nt': rmcmd = "cmd /c del %(testfile)s" else: - rmcmd = ("LC_ALL=C %(exe)s -c 'from fcntl import *; " + rmcmd = ("%(exe)s -c 'from fcntl import *; " "fd = open(%(testfile)s, %(mode)s); " "lockf(fd, LOCK_EX | LOCK_NB)'" % {'exe' : sys.executable, 'mode' : '"a+"', 'testfile' : '"%(testfile)s"'}) @@ -66,20 +64,17 @@ def test_locking(self): FLAGS = LOCK_SH | LOCK_NB - fd = open(testfile, 'w+') + fd = tempfile.NamedTemporaryFile(mode='w+', suffix='lck') + testfile = fd.name fd.write('testdata') fd.flush() self.failUnless(os.path.isfile(testfile)) lock(fd, FLAGS) - # Try to delete the file from another process - stdout = tempfile.TemporaryFile(mode="w+") - stderr = tempfile.TemporaryFile(mode="w+") - popen = Popen(rmcmd % {'testfile' : testfile}, stdout=stdout, - stderr=stderr, shell=True) + popen = Popen(rmcmd % {'testfile' : testfile}, stdout=PIPE, + stderr=PIPE, shell=True, env = {'LC_ALL' : 'C'}) popen.wait() - stdout.seek(0) - out = stdout.read() + out = popen.stdout.read() if os.name == 'nt': self.failUnlessEqual(out, '') elif os.name =='posix': @@ -87,19 +82,17 @@ else: raise OSError("unsupported os") - stderr.seek(0) - err = stderr.read() + err = popen.stderr.read() if os.name == 'nt': - self.failUnless('IOError: [Errno 11] Resource temporarily unavailable' in err) + self.failUnless('IOError: [Errno 11] Resource temporarily unavailable' in err, err) elif os.name =='posix': - self.failUnless('IOError: [Errno 11] Resource temporarily unavailable' in err) + self.failUnless('IOError: [Errno 11] Resource temporarily unavailable' in err, err) else: raise OSError("unsupported os") self.failUnless(os.path.isfile(testfile)) unlock(fd) fd.close() - rmtree(tmpdir) def test_suite(): return unittest.TestSuite(( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |