This file is indexed.

/usr/lib/python2.7/dist-packages/linaro_image_tools/tests/test_cmd_runner.py is in python-linaro-image-tools 2016.05-1.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# Copyright (C) 2010, 2011 Linaro
#
# Author: Guilherme Salgado <guilherme.salgado@linaro.org>
#
# This file is part of Linaro Image Tools.
#
# Linaro Image Tools is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Linaro Image Tools is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

import os

from linaro_image_tools import cmd_runner
from linaro_image_tools.testing import TestCaseWithFixtures
from linaro_image_tools.tests.fixtures import (
    MockCmdRunnerPopenFixture,
    MockSomethingFixture,
)


sudo_args = " ".join(cmd_runner.SUDO_ARGS)
chroot_args = " ".join(cmd_runner.CHROOT_ARGS)


class TestSanitizePath(TestCaseWithFixtures):
    def setUp(self):
        super(TestSanitizePath, self).setUp()
        self.env = {}

    def test_path_unset(self):
        cmd_runner.sanitize_path(self.env)
        self.assertEqual(cmd_runner.DEFAULT_PATH, self.env['PATH'])

    def test_path_missing_dirs(self):
        path = '/bin:/sbin:/foo:/usr/local/sbin'
        self.env['PATH'] = path
        cmd_runner.sanitize_path(self.env)
        expected = '%s:/usr/local/bin:/usr/sbin:/usr/bin' % path
        self.assertEqual(expected, self.env['PATH'])

    def test_idempotent(self):
        self.env['PATH'] = cmd_runner.DEFAULT_PATH
        cmd_runner.sanitize_path(self.env)
        self.assertEqual(cmd_runner.DEFAULT_PATH, self.env['PATH'])


class TestCmdRunner(TestCaseWithFixtures):

    def test_run(self):
        fixture = self.useFixture(MockCmdRunnerPopenFixture())
        proc = cmd_runner.run(['foo', 'bar', 'baz'])
        # Call wait or else MockCmdRunnerPopenFixture() raises an
        # AssertionError().
        proc.wait()
        self.assertEqual(0, proc.returncode)
        self.assertEqual(['foo bar baz'], fixture.mock.commands_executed)

    def test_run_as_root_with_sudo(self):
        fixture = self.useFixture(MockCmdRunnerPopenFixture())
        self.useFixture(MockSomethingFixture(os, 'getuid', lambda: 1000))
        cmd_runner.run(['foo', 'bar'], as_root=True).wait()
        self.assertEqual(
            ['%s foo bar' % sudo_args], fixture.mock.commands_executed)

    def test_run_as_root_as_root(self):
        fixture = self.useFixture(MockCmdRunnerPopenFixture())
        self.useFixture(MockSomethingFixture(os, 'getuid', lambda: 0))
        cmd_runner.run(['foo', 'bar'], as_root=True).wait()
        self.assertEqual(['foo bar'], fixture.mock.commands_executed)

    def test_tuple_with_sudo(self):
        fixture = self.useFixture(MockCmdRunnerPopenFixture())
        self.useFixture(MockSomethingFixture(os, 'getuid', lambda: 1000))
        cmd_runner.run(('foo', 'bar',), as_root=True).wait()
        self.assertEqual(
            ['%s foo bar' % sudo_args], fixture.mock.commands_executed)

    def test_chrooted(self):
        fixture = self.useFixture(MockCmdRunnerPopenFixture())
        cmd_runner.run(['foo', 'bar'], chroot='chroot_dir').wait()
        self.assertEqual(
            ['%s %s chroot_dir foo bar' % (sudo_args, chroot_args)],
            fixture.mock.commands_executed)

    def test_run_succeeds_on_zero_return_code(self):
        proc = cmd_runner.run(['true'])
        # Need to wait() here as we're using the real Popen.
        proc.wait()
        self.assertEqual(0, proc.returncode)

    def test_run_raises_exception_on_non_zero_return_code(self):
        def run_and_wait():
            proc = cmd_runner.run(['false'])
            proc.wait()
        self.assertRaises(
            cmd_runner.SubcommandNonZeroReturnValue, run_and_wait)

    def test_run_must_be_given_list_as_args(self):
        self.assertRaises(AssertionError, cmd_runner.run, 'true')

    def test_Popen(self):
        proc = cmd_runner.Popen('true')
        returncode = proc.wait()
        self.assertEqual(0, returncode)