~salgado/linaro-image-tools/improve-cmd_runner

« back to all changes in this revision

Viewing changes to media_create/tests/test_media_create.py

  • Committer: Guilherme Salgado
  • Date: 2010-12-09 19:17:14 UTC
  • Revision ID: salgado@canonical.com-20101209191714-agzjh3a1rnp2003m
Create a subprocess.Popen subclass which raises an error when the process exits with a non-zero return code.  This is useful in cases when cmd_runner can't be used but we still want to raise an error on non-zero exit.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
    ChangeCurrentWorkingDirFixture,
30
30
    CreateTempDirFixture,
31
31
    CreateTarballFixture,
32
 
    MockDoRunFixture,
 
32
    MockCmdRunnerPopenFixture,
33
33
    MockSomethingFixture,
34
34
    )
35
35
 
127
127
class TestCmdRunner(TestCaseWithFixtures):
128
128
 
129
129
    def test_run(self):
130
 
        fixture = MockDoRunFixture()
 
130
        fixture = MockCmdRunnerPopenFixture()
131
131
        self.useFixture(fixture)
132
132
        return_code = cmd_runner.run(['foo', 'bar', 'baz'])
133
133
        self.assertEqual(0, return_code)
134
134
        self.assertEqual(['foo', 'bar', 'baz'], fixture.mock.args)
135
135
 
136
136
    def test_run_as_root(self):
137
 
        fixture = MockDoRunFixture()
 
137
        fixture = MockCmdRunnerPopenFixture()
138
138
        self.useFixture(fixture)
139
139
        cmd_runner.run(['foo', 'bar'], as_root=True)
140
140
        self.assertEqual(['sudo', 'foo', 'bar'], fixture.mock.args)
151
151
    def test_run_must_be_given_list_as_args(self):
152
152
        self.assertRaises(AssertionError, cmd_runner.run, 'true')
153
153
 
154
 
    def test_do_run(self):
155
 
        return_code = cmd_runner.do_run('true')
156
 
        self.assertEqual(0, return_code)
 
154
    def test_Popen(self):
 
155
        proc = cmd_runner.Popen('true')
 
156
        returncode = proc.wait()
 
157
        self.assertEqual(0, returncode)
157
158
 
158
159
 
159
160
class TestPopulateBoot(TestCaseWithFixtures):
163
164
            populate_boot, '_get_file_matching',
164
165
            lambda regex: regex))
165
166
 
166
 
    def _mock_do_run(self):
167
 
        fixture = MockDoRunFixture()
 
167
    def _mock_Popen(self):
 
168
        fixture = MockCmdRunnerPopenFixture()
168
169
        self.useFixture(fixture)
169
170
        return fixture
170
171
 
171
172
    def test_make_uImage(self):
172
173
        self._mock_get_file_matching()
173
 
        fixture = self._mock_do_run()
 
174
        fixture = self._mock_Popen()
174
175
        make_uImage('load_addr', 'parts_dir', 'sub_arch', 'boot_disk')
175
176
        expected = [
176
177
            'sudo', 'mkimage', '-A', 'arm', '-O', 'linux', '-T', 'kernel',
180
181
 
181
182
    def test_make_uInitrd(self):
182
183
        self._mock_get_file_matching()
183
 
        fixture = self._mock_do_run()
 
184
        fixture = self._mock_Popen()
184
185
        make_uInitrd('parts_dir', 'sub_arch', 'boot_disk')
185
186
        expected = [
186
187
            'sudo', 'mkimage', '-A', 'arm', '-O', 'linux', '-T', 'ramdisk',
190
191
 
191
192
    def test_make_boot_script(self):
192
193
        self._mock_get_file_matching()
193
 
        fixture = self._mock_do_run()
 
194
        fixture = self._mock_Popen()
194
195
        make_boot_script('boot_script', 'tmp_dir')
195
196
        expected = [
196
197
            'sudo', 'mkimage', '-A', 'arm', '-O', 'linux', '-T', 'script',