def test_run_command_failure(self, subprocess):
     subprocess.call.return_value = 1
     mixin = CommandProcessorMixin(
         output='js/processed.js',
         command='cat {input} > {output}',
     )
     with self.assertRaises(RuntimeError):
         mixin.run_command('input.txt')
 def test_run_command(self, subprocess):
     subprocess.call.return_value = 0
     storage = MagicMock()
     storage.path.side_effect = lambda f: os.path.join('/prefix/path/', f)
     mixin = CommandProcessorMixin(
         output='js/processed.js',
         command='cat {input} > {output}',
         storage=storage,
     )
     mixin.run_command('input.txt')
     subprocess.call.assert_called_with(
         ['cat', 'input.txt', '>', '/prefix/path/js/processed.js'])
 def test_get_command(self):
     mixin = CommandProcessorMixin()
     mixin.command = 'cat {input} > {output}'
     command = mixin.get_command(
         input='/an/input/file.txt', output='output.txt')
     self.assertEqual(command, 'cat /an/input/file.txt > output.txt')
 def test_bails_on_no_input(self, subprocess):
     mixin = CommandProcessorMixin(require_input=True)
     mixin.run_command('')
     self.assertFalse(subprocess.call.called)