mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Fix FileModuleTest setUp and tearDown to work on Windows.
This commit is contained in:
parent
3ac5391f5f
commit
8f89c99fa5
1 changed files with 29 additions and 9 deletions
|
@ -3,12 +3,23 @@
|
|||
# Import python libs
|
||||
from __future__ import absolute_import
|
||||
import getpass
|
||||
import grp
|
||||
import pwd
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
# Posix only
|
||||
try:
|
||||
import grp
|
||||
import pwd
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
# Windows only
|
||||
try:
|
||||
import win32file
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
# Import Salt Testing libs
|
||||
from salttesting import skipIf
|
||||
from salttesting.helpers import ensure_in_syspath
|
||||
|
@ -22,6 +33,15 @@ import integration
|
|||
import salt.utils
|
||||
from salt.modules import file as filemod
|
||||
|
||||
def symlink(source, link_name):
|
||||
'''
|
||||
Handle symlinks on Windows with Python < 3.2
|
||||
'''
|
||||
if salt.utils.is_windows():
|
||||
win32file.CreateSymbolicLink(link_name, source)
|
||||
else:
|
||||
os.symlink(source, link_name)
|
||||
|
||||
|
||||
class FileModuleTest(integration.ModuleCase):
|
||||
'''
|
||||
|
@ -30,27 +50,27 @@ class FileModuleTest(integration.ModuleCase):
|
|||
def setUp(self):
|
||||
self.myfile = os.path.join(integration.TMP, 'myfile')
|
||||
with salt.utils.fopen(self.myfile, 'w+') as fp:
|
||||
fp.write('Hello\n')
|
||||
fp.write('Hello' + os.linesep)
|
||||
self.mydir = os.path.join(integration.TMP, 'mydir/isawesome')
|
||||
if not os.path.isdir(self.mydir):
|
||||
# left behind... Don't fail because of this!
|
||||
os.makedirs(self.mydir)
|
||||
self.mysymlink = os.path.join(integration.TMP, 'mysymlink')
|
||||
if os.path.islink(self.mysymlink):
|
||||
if os.path.islink(self.mysymlink) or os.path.isfile(self.mysymlink):
|
||||
os.remove(self.mysymlink)
|
||||
os.symlink(self.myfile, self.mysymlink)
|
||||
symlink(self.myfile, self.mysymlink)
|
||||
self.mybadsymlink = os.path.join(integration.TMP, 'mybadsymlink')
|
||||
if os.path.islink(self.mybadsymlink):
|
||||
if os.path.islink(self.mybadsymlink) or os.path.isfile(self.mybadsymlink):
|
||||
os.remove(self.mybadsymlink)
|
||||
os.symlink('/nonexistentpath', self.mybadsymlink)
|
||||
symlink('/nonexistentpath', self.mybadsymlink)
|
||||
super(FileModuleTest, self).setUp()
|
||||
|
||||
def tearDown(self):
|
||||
if os.path.isfile(self.myfile):
|
||||
os.remove(self.myfile)
|
||||
if os.path.islink(self.mysymlink):
|
||||
if os.path.islink(self.mysymlink) or os.path.isfile(self.mysymlink):
|
||||
os.remove(self.mysymlink)
|
||||
if os.path.islink(self.mybadsymlink):
|
||||
if os.path.islink(self.mybadsymlink) or os.path.isfile(self.mybadsymlink):
|
||||
os.remove(self.mybadsymlink)
|
||||
shutil.rmtree(self.mydir, ignore_errors=True)
|
||||
super(FileModuleTest, self).tearDown()
|
||||
|
|
Loading…
Add table
Reference in a new issue