123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- # -*- coding: utf-8 -*-
- """
- integration tests for mac_xattr
- """
- from __future__ import absolute_import, print_function, unicode_literals
- import os
- import pytest
- from tests.support.case import ModuleCase
- from tests.support.runtests import RUNTIME_VARS
- @pytest.mark.skip_unless_on_darwin
- @pytest.mark.skip_if_binaries_missing("xattr")
- 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
- """
- 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)
- @pytest.mark.slow_test(seconds=5) # Test takes >1 and <=5 seconds
- 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),
- )
- @pytest.mark.slow_test(seconds=5) # Test takes >1 and <=5 seconds
- 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),
- )
- @pytest.mark.slow_test(seconds=5) # Test takes >1 and <=5 seconds
- 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",
- )
- @pytest.mark.slow_test(seconds=5) # Test takes >1 and <=5 seconds
- 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",
- )
- @pytest.mark.slow_test(seconds=5) # Test takes >1 and <=5 seconds
- 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),
- )
|