提交 b5db3f03 编写于 作者: C Cleber Rosa

Use of symbolic permission names instead of literal octals

This change introduces symbolic names for various filesystem
permission modes, instead of the literal octals with which
Python 3 shows no compassion.
Signed-off-by: NCleber Rosa <crosa@redhat.com>
上级 e53e147f
......@@ -17,19 +17,26 @@ Module to handle scripts creation.
"""
import os
import tempfile
import stat
import shutil
import tempfile
from . import path as utils_path
#: What is commonly known as "0775" or "u=rwx,g=rwx,o=rx"
DEFAULT_MODE = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR |
stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP |
stat.S_IROTH | stat.S_IXOTH)
class Script(object):
"""
Class that represents a script.
"""
def __init__(self, path, content, mode=0775):
def __init__(self, path, content, mode=DEFAULT_MODE):
"""
Creates an instance of :class:`Script`.
......@@ -38,7 +45,7 @@ class Script(object):
:param path: the script file name.
:param content: the script content.
:param mode: set file mode, default to 0775.
:param mode: set file mode, defaults what is commonly known as 0775.
"""
self.path = path
self.content = content
......@@ -94,7 +101,7 @@ class TemporaryScript(Script):
Class that represents a temporary script.
"""
def __init__(self, name, content, prefix='avocado_script', mode=0775):
def __init__(self, name, content, prefix='avocado_script', mode=DEFAULT_MODE):
"""
Creates an instance of :class:`TemporaryScript`.
......@@ -124,7 +131,7 @@ class TemporaryScript(Script):
self.stored = False
def make_script(path, content, mode=0775):
def make_script(path, content, mode=DEFAULT_MODE):
"""
Creates a new script stored in the file system.
......@@ -138,7 +145,7 @@ def make_script(path, content, mode=0775):
return scpt.path
def make_temp_script(name, content, prefix='avocado_script', mode=0775):
def make_temp_script(name, content, prefix='avocado_script', mode=DEFAULT_MODE):
"""
Creates a new temporary script stored in the file system.
......
......@@ -3,6 +3,7 @@ import sys
import tempfile
import time
import shutil
import stat
import aexpect
import psutil
......@@ -21,6 +22,11 @@ basedir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..')
basedir = os.path.abspath(basedir)
# What is commonly known as "0755" or "u=rwx,g=rx,o=rx"
DEFAULT_MODE = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR |
stat.S_IRGRP | stat.S_IXGRP |
stat.S_IROTH | stat.S_IXOTH)
BAD_TEST = """#!/usr/bin/env python
import signal
import time
......@@ -60,7 +66,8 @@ class InterruptTest(unittest.TestCase):
data_factory.generate_random_string(5))
bad_test = script.TemporaryScript(bad_test_basename, BAD_TEST,
'avocado_interrupt_test',
mode=0755)
mode=DEFAULT_MODE)
bad_test.save()
os.chdir(basedir)
......@@ -121,7 +128,7 @@ class InterruptTest(unittest.TestCase):
data_factory.generate_random_string(5))
good_test = script.TemporaryScript(good_test_basename, GOOD_TEST,
'avocado_interrupt_test',
mode=0755)
mode=DEFAULT_MODE)
good_test.save()
os.chdir(basedir)
......
......@@ -2,6 +2,7 @@ import os
import sys
import subprocess
import time
import stat
import tempfile
import shutil
import signal
......@@ -139,11 +140,19 @@ if __name__ == "__main__":
class LoaderTestFunctional(unittest.TestCase):
MODE_0664 = (stat.S_IRUSR | stat.S_IWUSR |
stat.S_IRGRP | stat.S_IWGRP |
stat.S_IROTH)
MODE_0775 = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR |
stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP |
stat.S_IROTH | stat.S_IXOTH)
def setUp(self):
os.chdir(basedir)
self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__)
def _test(self, name, content, exp_str, mode=0664, count=1):
def _test(self, name, content, exp_str, mode=MODE_0664, count=1):
test_script = script.TemporaryScript(name, content,
'avocado_loader_test',
mode=mode)
......@@ -166,7 +175,7 @@ class LoaderTestFunctional(unittest.TestCase):
self.assertEquals(test_process.returncode, exit_codes.AVOCADO_TESTS_FAIL)
def test_simple(self):
self._test('simpletest.sh', SIMPLE_TEST, 'SIMPLE', 0775)
self._test('simpletest.sh', SIMPLE_TEST, 'SIMPLE', self.MODE_0775)
def test_simple_not_exec(self):
self._test('simpletest.sh', SIMPLE_TEST, 'NOT_A_TEST')
......@@ -182,7 +191,7 @@ class LoaderTestFunctional(unittest.TestCase):
test_script = script.TemporaryScript('sleepeleven.py',
AVOCADO_TEST_SLEEP_ELEVEN,
'avocado_loader_test',
mode=0664)
mode=self.MODE_0664)
test_script.save()
cmd_line = ('./scripts/avocado list -V %s' % test_script.path)
initial_time = time.time()
......@@ -197,14 +206,14 @@ class LoaderTestFunctional(unittest.TestCase):
def test_multiple_class(self):
self._test('multipleclasses.py', AVOCADO_TEST_MULTIPLE_CLASSES,
'INSTRUMENTED', 0664, 2)
'INSTRUMENTED', self.MODE_0664, 2)
def test_multiple_methods_same_name(self):
self._test('multiplemethods.py', AVOCADO_TEST_MULTIPLE_METHODS_SAME_NAME,
'INSTRUMENTED', 0664, 1)
def test_load_not_a_test(self):
self._test('notatest.py', NOT_A_TEST, 'SIMPLE', 0775)
self._test('notatest.py', NOT_A_TEST, 'SIMPLE', self.MODE_0775)
def test_load_not_a_test_not_exec(self):
self._test('notatest.py', NOT_A_TEST, 'NOT_A_TEST')
......
import os
import sys
import stat
import time
import tempfile
import shutil
......@@ -11,6 +12,12 @@ else:
from avocado.utils import process
# What is commonly known as "0775" or "u=rwx,g=rwx,o=rx"
DEFAULT_MODE = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR |
stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP |
stat.S_IROTH | stat.S_IXOTH)
FAKE_VMSTAT_CONTENTS = """#!/usr/bin/env python
import time
import random
......@@ -122,12 +129,12 @@ class ProcessTest(unittest.TestCase):
self.fake_vmstat = os.path.join(self.base_logdir, 'vmstat')
with open(self.fake_vmstat, 'w') as fake_vmstat_obj:
fake_vmstat_obj.write(FAKE_VMSTAT_CONTENTS)
os.chmod(self.fake_vmstat, 0775)
os.chmod(self.fake_vmstat, DEFAULT_MODE)
self.fake_uptime = os.path.join(self.base_logdir, 'uptime')
with open(self.fake_uptime, 'w') as fake_uptime_obj:
fake_uptime_obj.write(FAKE_UPTIME_CONTENTS)
os.chmod(self.fake_uptime, 0775)
os.chmod(self.fake_uptime, DEFAULT_MODE)
def test_process_start(self):
proc = process.SubProcess('%s 1' % self.fake_vmstat)
......
import stat
import sys
import multiprocessing
......@@ -13,6 +14,12 @@ from avocado.utils import script
# We need to access protected members pylint: disable=W0212
#: What is commonly known as "0664" or "u=rw,g=rw,o=r"
DEFAULT_NON_EXEC_MODE = (stat.S_IRUSR | stat.S_IWUSR |
stat.S_IRGRP | stat.S_IWGRP |
stat.S_IROTH)
AVOCADO_TEST_OK = """#!/usr/bin/env python
from avocado import Test
from avocado import main
......@@ -153,7 +160,7 @@ class LoaderTest(unittest.TestCase):
def test_load_simple_not_exec(self):
simple_test = script.TemporaryScript('simpletest.sh', SIMPLE_TEST,
'avocado_loader_unittest',
mode=0664)
mode=DEFAULT_NON_EXEC_MODE)
simple_test.save()
test_class, test_parameters = (
self.loader.discover(simple_test.path, True)[0])
......@@ -176,7 +183,7 @@ class LoaderTest(unittest.TestCase):
avocado_not_a_test = script.TemporaryScript('notatest.py',
NOT_A_TEST,
'avocado_loader_unittest',
mode=0664)
mode=DEFAULT_NON_EXEC_MODE)
avocado_not_a_test.save()
test_class, test_parameters = (
self.loader.discover(avocado_not_a_test.path, True)[0])
......@@ -214,7 +221,7 @@ class LoaderTest(unittest.TestCase):
avocado_simple_test = script.TemporaryScript('simpletest.py',
PY_SIMPLE_TEST,
'avocado_loader_unittest',
mode=0664)
mode=DEFAULT_NON_EXEC_MODE)
avocado_simple_test.save()
test_class, test_parameters = (
self.loader.discover(avocado_simple_test.path, True)[0])
......@@ -227,7 +234,7 @@ class LoaderTest(unittest.TestCase):
avocado_multiple_tests = script.TemporaryScript('multipletests.py',
AVOCADO_MULTIPLE_TESTS,
'avocado_multiple_tests_unittest',
mode=0664)
mode=DEFAULT_NON_EXEC_MODE)
avocado_multiple_tests.save()
suite = self.loader.discover(avocado_multiple_tests.path, True)
self.assertEqual(len(suite), 2)
......@@ -254,7 +261,7 @@ class LoaderTest(unittest.TestCase):
avocado_multiple_tests = script.TemporaryScript('multipletests.py',
AVOCADO_MULTIPLE_TESTS_SAME_NAME,
'avocado_multiple_tests_unittest',
mode=0664)
mode=DEFAULT_NON_EXEC_MODE)
avocado_multiple_tests.save()
suite = self.loader.discover(avocado_multiple_tests.path, True)
self.assertEqual(len(suite), 1)
......@@ -279,7 +286,7 @@ class LoaderTest(unittest.TestCase):
avocado_pass_test = script.TemporaryScript('disable.py',
AVOCADO_TEST_OK_DISABLED,
'avocado_loader_unittest',
0664)
DEFAULT_NON_EXEC_MODE)
avocado_pass_test.save()
test_class, test_parameters = (
self.loader.discover(avocado_pass_test.path, True)[0])
......@@ -290,7 +297,7 @@ class LoaderTest(unittest.TestCase):
avocado_nested_test = script.TemporaryScript('nested.py',
AVOCADO_TEST_NESTED_TAGGED,
'avocado_loader_unittest',
0664)
DEFAULT_NON_EXEC_MODE)
avocado_nested_test.save()
test_class, test_parameters = (
self.loader.discover(avocado_nested_test.path, True)[0])
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册