123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- # -*- coding: utf-8 -*-
- '''
- integration tests for mac_xattr
- '''
- # Import Python libs
- from __future__ import absolute_import, unicode_literals, print_function
- import os
- # Import Salt Testing libs
- from tests.support.runtests import RUNTIME_VARS
- from tests.support.case import ModuleCase
- # Import Salt libs
- import salt.utils.path
- import salt.utils.platform
- class MacXattrModuleTest(ModuleCase):
- '''
- Validate the mac_xattr module
- '''
- @classmethod
- def setUpClass(cls):
- cls.test_file = os.path.join(RUNTIME_VARS.TMP, 'xattr_test_file.txt')
- cls.no_file = os.path.join(RUNTIME_VARS.TMP, 'xattr_no_file.txt')
- def setUp(self):
- '''
- Create test file for testing extended attributes
- '''
- if not salt.utils.platform.is_darwin():
- self.skipTest('Test only available on macOS')
- if not salt.utils.path.which('xattr'):
- self.skipTest('Test requires xattr binary')
- self.run_function('file.touch', [self.test_file])
- def tearDown(self):
- '''
- Clean up test file
- '''
- if os.path.exists(self.test_file):
- os.remove(self.test_file)
- def test_list_no_xattr(self):
- '''
- Make sure there are no attributes
- '''
- # Clear existing attributes
- self.assertTrue(self.run_function('xattr.clear', [self.test_file]))
- # Test no attributes
- self.assertEqual(self.run_function('xattr.list', [self.test_file]), {})
- # Test file not found
- self.assertEqual(self.run_function('xattr.list', [self.no_file]),
- 'ERROR: File not found: {0}'.format(self.no_file))
- def test_write(self):
- '''
- Write an attribute
- '''
- # Clear existing attributes
- self.assertTrue(self.run_function('xattr.clear', [self.test_file]))
- # Write some attributes
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'spongebob', 'squarepants']))
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'squidward', 'plankton']))
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'crabby', 'patty']))
- # Test that they were actually added
- self.assertEqual(
- self.run_function('xattr.list', [self.test_file]),
- {'spongebob': 'squarepants',
- 'squidward': 'plankton',
- 'crabby': 'patty'})
- # Test file not found
- self.assertEqual(
- self.run_function('xattr.write', [self.no_file, 'patrick', 'jellyfish']),
- 'ERROR: File not found: {0}'.format(self.no_file))
- def test_read(self):
- '''
- Test xattr.read
- '''
- # Clear existing attributes
- self.assertTrue(self.run_function('xattr.clear', [self.test_file]))
- # Write an attribute
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'spongebob', 'squarepants']))
- # Read the attribute
- self.assertEqual(
- self.run_function('xattr.read', [self.test_file, 'spongebob']),
- 'squarepants')
- # Test file not found
- self.assertEqual(
- self.run_function('xattr.read', [self.no_file, 'spongebob']),
- 'ERROR: File not found: {0}'.format(self.no_file))
- # Test attribute not found
- self.assertEqual(
- self.run_function('xattr.read', [self.test_file, 'patrick']),
- 'ERROR: Attribute not found: patrick')
- def test_delete(self):
- '''
- Test xattr.delete
- '''
- # Clear existing attributes
- self.assertTrue(self.run_function('xattr.clear', [self.test_file]))
- # Write some attributes
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'spongebob', 'squarepants']))
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'squidward', 'plankton']))
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'crabby', 'patty']))
- # Delete an attribute
- self.assertTrue(
- self.run_function('xattr.delete', [self.test_file, 'squidward']))
- # Make sure it was actually deleted
- self.assertEqual(
- self.run_function('xattr.list', [self.test_file]),
- {'spongebob': 'squarepants', 'crabby': 'patty'})
- # Test file not found
- self.assertEqual(
- self.run_function('xattr.delete', [self.no_file, 'spongebob']),
- 'ERROR: File not found: {0}'.format(self.no_file))
- # Test attribute not found
- self.assertEqual(
- self.run_function('xattr.delete', [self.test_file, 'patrick']),
- 'ERROR: Attribute not found: patrick')
- def test_clear(self):
- '''
- Test xattr.clear
- '''
- # Clear existing attributes
- self.assertTrue(self.run_function('xattr.clear', [self.test_file]))
- # Write some attributes
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'spongebob', 'squarepants']))
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'squidward', 'plankton']))
- self.assertTrue(
- self.run_function('xattr.write',
- [self.test_file, 'crabby', 'patty']))
- # Test Clear
- self.assertTrue(self.run_function('xattr.clear', [self.test_file]))
- # Test file not found
- self.assertEqual(self.run_function('xattr.clear', [self.no_file]),
- 'ERROR: File not found: {0}'.format(self.no_file))
|