Пример #1
0
 def test_dir_missing(self):
     path = os.path.join(self.temp, 'adir/afile')
     self.assertRaises(errors.BadArgumentFormat,
                       self.run_conv, converters.file(mode='w'), path)
     @modifiers.annotate(afile=converters.file(mode='w'))
     def func(afile):
         raise NotImplementedError
     stdout, stderr = self.crun(func, ['test', path])
     self.assertFalse(stdout.getvalue())
     self.assertTrue(stderr.getvalue().startswith(
         'test: Bad value for afile: Directory does not exist: '))
Пример #2
0
    def test_dir_missing(self):
        path = os.path.join(self.temp, 'adir/afile')
        self.assertRaises(errors.BadArgumentFormat, self.run_conv,
                          converters.file(mode='w'), path)

        @modifiers.annotate(afile=converters.file(mode='w'))
        def func(afile):
            raise NotImplementedError

        stdout, stderr = self.crun(func, ['test', path])
        self.assertFalse(stdout.getvalue())
        self.assertTrue(stderr.getvalue().startswith(
            'test: Bad value for afile: Directory does not exist: '))
Пример #3
0
 def test_noperm_dir(self):
     dpath = os.path.join(self.temp, 'adir')
     path = os.path.join(self.temp, 'adir/afile')
     os.mkdir(dpath)
     os.chmod(dpath, stat.S_IRUSR)
     self.assertRaises(errors.BadArgumentFormat, self.run_conv,
                       converters.file(mode='w'), path)
Пример #4
0
 def test_noperm_dir(self):
     dpath = os.path.join(self.temp, 'adir')
     path = os.path.join(self.temp, 'adir/afile')
     os.mkdir(dpath)
     os.chmod(dpath, stat.S_IRUSR)
     self.assertRaises(errors.BadArgumentFormat,
                       self.run_conv, converters.file(mode='w'), path)
Пример #5
0
 def test_stdout(self):
     @modifiers.annotate(afile=converters.file(mode='w'))
     def func(afile):
         with afile as f:
             self.assertIs(f, sys.stdout)
     stdout, stderr = self.crun(func, ['test', '-'])
     self.assertTrue(stdout.closed)
     self.assertFalse(stderr.getvalue())
Пример #6
0
class ConverterRepTests(Fixtures):
    def _test(self, conv, rep):
        sig = support.s('*, par: c', locals={'c': conv})
        csig = parser.CliSignature.from_signature(sig)
        self.assertEqual(str(csig), rep)

    datetime = converters.datetime, '--par=TIME'
    file = converters.file(), '--par=FILE'
Пример #7
0
 def test_current_dir(self):
     @modifiers.annotate(afile=converters.file(mode='w'))
     def func(afile):
         pass
     with self.cd(self.temp):
         stdout, stderr = self.crun(func, ['test', 'afile'])
         self.assertFalse(stdout.getvalue())
         self.assertFalse(stderr.getvalue())
Пример #8
0
 def test_default_none_value(self):
     @modifiers.annotate(afile=converters.file())
     def func(afile=None):
         self.assertIs(afile, None)
         self.completed = True
     stdout, stderr = self.crun(func, ['test'])
     self.assertFalse(stdout.getvalue())
     self.assertFalse(stderr.getvalue())
     self.assertTrue(self.completed)
Пример #9
0
    def test_stdout(self):
        @modifiers.annotate(afile=converters.file(mode='w'))
        def func(afile):
            with afile as f:
                self.assertIs(f, sys.stdout)

        stdout, stderr = self.crun(func, ['test', '-'])
        self.assertTrue(stdout.closed)
        self.assertFalse(stderr.getvalue())
Пример #10
0
 def test_no_sym(self):
     @modifiers.annotate(afile=converters.file(stdio=None))
     def func(afile):
         raise NotImplementedError
     self.assertFalse(os.path.exists('-'))
     stdout, stderr = self.crun(func, ['test', '-'])
     self.assertFalse(stdout.getvalue())
     self.assertTrue(stderr.getvalue().startswith(
         'test: Bad value for afile: File does not exist: '))
Пример #11
0
    def test_no_sym(self):
        @modifiers.annotate(afile=converters.file(stdio=None))
        def func(afile):
            raise NotImplementedError

        self.assertFalse(os.path.exists('-'))
        stdout, stderr = self.crun(func, ['test', '-'])
        self.assertFalse(stdout.getvalue())
        self.assertTrue(stderr.getvalue().startswith(
            'test: Bad value for afile: File does not exist: '))
Пример #12
0
    def test_default_none_value(self):
        @modifiers.annotate(afile=converters.file())
        def func(afile=None):
            self.assertIs(afile, None)
            self.completed = True

        stdout, stderr = self.crun(func, ['test'])
        self.assertFalse(stdout.getvalue())
        self.assertFalse(stderr.getvalue())
        self.assertTrue(self.completed)
Пример #13
0
 def test_stdin_no_close(self):
     stdin = cStringIO()
     @modifiers.annotate(afile=converters.file(keep_stdio_open=True))
     def func(afile):
         with afile as f:
             self.assertIs(f, stdin)
     stdout, stderr = self.crun(func, ['test', '-'], stdin=stdin)
     self.assertFalse(stdin.closed)
     self.assertFalse(stdout.getvalue())
     self.assertFalse(stderr.getvalue())
Пример #14
0
 def test_race(self):
     path = os.path.join(self.temp, 'afile')
     open(path, mode='w').close()
     @modifiers.annotate(afile=converters.file(mode='w'))
     def func(afile):
         os.chmod(path, stat.S_IRUSR)
         with afile:
             raise NotImplementedError
     stdout, stderr = self.crun(func, ['test', path])
     self.assertFalse(stdout.getvalue())
     self.assertTrue(stderr.getvalue().startswith(
         'test: Permission denied: '))
Пример #15
0
    def test_stdin_no_close(self):
        stdin = cStringIO()

        @modifiers.annotate(afile=converters.file(keep_stdio_open=True))
        def func(afile):
            with afile as f:
                self.assertIs(f, stdin)

        stdout, stderr = self.crun(func, ['test', '-'], stdin=stdin)
        self.assertFalse(stdin.closed)
        self.assertFalse(stdout.getvalue())
        self.assertFalse(stderr.getvalue())
Пример #16
0
 def test_file_read(self):
     path = os.path.join(self.temp, 'afile')
     open(path, 'w').close()
     @modifiers.annotate(afile=converters.file())
     def func(afile):
         with afile as f:
             self.assertEqual(f.name, path)
             self.assertEqual(f.mode, 'r')
         self.assertTrue(f.closed)
     o, e = self.crun(func, ['test', path])
     self.assertFalse(o.getvalue())
     self.assertFalse(e.getvalue())
Пример #17
0
 def test_file_write(self):
     path = os.path.join(self.temp, 'afile')
     @modifiers.annotate(afile=converters.file(mode='w'))
     def func(afile):
         self.assertFalse(os.path.exists(path))
         with afile as f:
             self.assertEqual(f.name, path)
             self.assertEqual(f.mode, 'w')
         self.assertTrue(f.closed)
         self.assertTrue(os.path.exists(path))
     o, e = self.crun(func, ['test', path])
     self.assertFalse(o.getvalue())
     self.assertFalse(e.getvalue())
Пример #18
0
 def test_default_value(self):
     path = os.path.join(self.temp, 'default')
     open(path, 'w').close()
     @modifiers.annotate(afile=converters.file())
     def func(afile=path):
         with afile as f:
             self.assertEqual(f.name, path)
             self.assertEqual(f.mode, 'r')
         self.assertTrue(f.closed)
         self.completed = True
     stdout, stderr = self.crun(func, ['test'])
     self.assertFalse(stdout.getvalue())
     self.assertFalse(stderr.getvalue())
     self.assertTrue(self.completed)
Пример #19
0
    def test_race(self):
        path = os.path.join(self.temp, 'afile')
        open(path, mode='w').close()

        @modifiers.annotate(afile=converters.file(mode='w'))
        def func(afile):
            os.chmod(path, stat.S_IRUSR)
            with afile:
                raise NotImplementedError

        stdout, stderr = self.crun(func, ['test', path])
        self.assertFalse(stdout.getvalue())
        self.assertTrue(
            stderr.getvalue().startswith('test: Permission denied: '))
Пример #20
0
    def test_file_read(self):
        path = os.path.join(self.temp, 'afile')
        open(path, 'w').close()

        @modifiers.annotate(afile=converters.file())
        def func(afile):
            with afile as f:
                self.assertEqual(f.name, path)
                self.assertEqual(f.mode, 'r')
            self.assertTrue(f.closed)

        o, e = util.run(func, ['test', path])
        self.assertFalse(o.getvalue())
        self.assertFalse(e.getvalue())
Пример #21
0
 def test_change_sym(self):
     @modifiers.annotate(afile=converters.file(stdio='gimmestdio'))
     def func(afile):
         with afile as f:
             self.assertIs(f, sys.stdin)
     stdout, stderr = self.crun(func, ['test', 'gimmestdio'])
     self.assertFalse(stdout.getvalue())
     self.assertFalse(stderr.getvalue())
     with self.cd(self.temp):
         self.assertFalse(os.path.exists('-'))
         stdout, stderr = self.crun(func, ['test', '-'])
         self.assertFalse(stdout.getvalue())
         self.assertTrue(stderr.getvalue().startswith(
             'test: Bad value for afile: File does not exist: '))
Пример #22
0
    def test_change_sym(self):
        @modifiers.annotate(afile=converters.file(stdio='gimmestdio'))
        def func(afile):
            with afile as f:
                self.assertIs(f, sys.stdin)

        stdout, stderr = self.crun(func, ['test', 'gimmestdio'])
        self.assertFalse(stdout.getvalue())
        self.assertFalse(stderr.getvalue())
        with self.cd(self.temp):
            self.assertFalse(os.path.exists('-'))
            stdout, stderr = self.crun(func, ['test', '-'])
            self.assertFalse(stdout.getvalue())
            self.assertTrue(stderr.getvalue().startswith(
                'test: Bad value for afile: File does not exist: '))
Пример #23
0
    def test_file_write(self):
        path = os.path.join(self.temp, 'afile')

        @modifiers.annotate(afile=converters.file(mode='w'))
        def func(afile):
            self.assertFalse(os.path.exists(path))
            with afile as f:
                self.assertEqual(f.name, path)
                self.assertEqual(f.mode, 'w')
            self.assertTrue(f.closed)
            self.assertTrue(os.path.exists(path))

        o, e = util.run(func, ['test', path])
        self.assertFalse(o.getvalue())
        self.assertFalse(e.getvalue())
Пример #24
0
 def test_current_dir(self):
     path = 'afile'
     @modifiers.annotate(afile=converters.file(mode='w'))
     def func(afile):
         with afile as f:
             self.assertEqual(f.name, path)
             self.assertEqual(f.mode, 'w')
         self.assertTrue(f.closed)
         self.assertTrue(os.path.exists(path))
         self.completed = True
     with self.cd(self.temp):
         stdout, stderr = self.crun(func, ['test', path])
         self.assertFalse(stdout.getvalue())
         self.assertFalse(stderr.getvalue())
     self.assertTrue(self.completed)
Пример #25
0
    def test_default_value(self):
        path = os.path.join(self.temp, 'default')
        open(path, 'w').close()

        @modifiers.annotate(afile=converters.file())
        def func(afile=path):
            with afile as f:
                self.assertEqual(f.name, path)
                self.assertEqual(f.mode, 'r')
            self.assertTrue(f.closed)
            self.completed = True

        stdout, stderr = self.crun(func, ['test'])
        self.assertFalse(stdout.getvalue())
        self.assertFalse(stderr.getvalue())
        self.assertTrue(self.completed)
Пример #26
0
    def test_current_dir(self):
        path = 'afile'

        @modifiers.annotate(afile=converters.file(mode='w'))
        def func(afile):
            with afile as f:
                self.assertEqual(f.name, path)
                self.assertEqual(f.mode, 'w')
            self.assertTrue(f.closed)
            self.assertTrue(os.path.exists(path))
            self.completed = True

        with self.cd(self.temp):
            stdout, stderr = self.crun(func, ['test', path])
            self.assertFalse(stdout.getvalue())
            self.assertFalse(stderr.getvalue())
        self.assertTrue(self.completed)
Пример #27
0
 def test_ret_type(self):
     path = os.path.join(self.temp, 'afile')
     arg = self.run_conv(converters.file(mode='w'), path)
     self.assertTrue(isinstance(arg, converters._FileOpener))
     type(arg).__enter__
Пример #28
0
# -*- coding: utf-8 -*-
from __future__ import print_function, unicode_literals

import logging
from os.path import expanduser

from clize import converters
from configobj import ConfigObj
from sigtools import modifiers
from uptime_report.backends import backend_config, get_backend, list_backends

log = logging.getLogger(__name__)


@modifiers.autokwoargs
@modifiers.annotate(output=converters.file(keep_stdio_open=True, mode='wb'))
def write_config(output='-'):
    """Write out a sample config file. Use '-' for stdout.

    :param output: the path to the file to write.
    """
    cfg = ConfigObj()
    for name in list_backends():
        cfg[name] = {}
        for setting, value in backend_config(get_backend(name)):
            cfg[name][setting] = value
    with output as fp:
        cfg.write(getattr(fp, 'buffer', fp))


def read_config(config='~/.config/uptime_report.cfg'):
Пример #29
0
 def test_ret_type(self):
     path = os.path.join(self.temp, 'afile')
     arg = self.run_conv(converters.file(mode='w'), path)
     self.assertTrue(isinstance(arg, converters._FileOpener))
     type(arg).__enter__
Пример #30
0
 def test_noperm_file_write(self):
     path = os.path.join(self.temp, 'afile')
     open(path, mode='w').close()
     os.chmod(path, stat.S_IRUSR)
     self.assertRaises(errors.BadArgumentFormat, self.run_conv,
                       converters.file(mode='w'), path)
Пример #31
0
 def test_noperm_file_write(self):
     path = os.path.join(self.temp, 'afile')
     open(path, mode='w').close()
     os.chmod(path, stat.S_IRUSR)
     self.assertRaises(errors.BadArgumentFormat,
                       self.run_conv, converters.file(mode='w'), path)