def test_action_tracer_is_not_wrapper(self):
     command = action_tracer.ToolCommand(
         tokens=[
             'path/to/python3.x', 'path/to/not_a_wrapper.py', '--opt1',
             'arg1'
         ])
     self.assertFalse(action_tracer.is_known_wrapper(command))
 def test_action_tracer_is_wrapper_extra_python_flag(self):
     command = action_tracer.ToolCommand(
         tokens=[
             'path/to/python3.x', '-S', 'path/to/action_tracer.py', '--',
             'foo.sh', 'arg1', 'arg2'
         ])
     self.assertTrue(action_tracer.is_known_wrapper(command))
 def test_unwrap_one_of_many_level(self):
     tokens = [
         'wrapper', '--opt', 'foo', '--', 'bar.sh', 'arg', '--', 'inner.sh'
     ]
     command = action_tracer.ToolCommand(tokens=tokens)
     command2 = command.unwrap()
     self.assertEqual(command2.tokens, ['bar.sh', 'arg', '--', 'inner.sh'])
     command3 = command2.unwrap()
     self.assertEqual(command3.tokens, ['inner.sh'])
 def test_action_tracer_is_wrapper_implicit_interpreter(self):
     command = action_tracer.ToolCommand(
         tokens=['path/to/action_tracer.py', '--', 'foo.sh', 'arg1', 'arg2'])
     self.assertTrue(action_tracer.is_known_wrapper(command))
 def test_unwrap_one_level(self):
     tokens = ['wrapper', '--opt', 'foo', '--', 'bar.sh', 'arg']
     command = action_tracer.ToolCommand(tokens=tokens)
     self.assertEqual(command.unwrap().tokens, ['bar.sh', 'arg'])
 def test_unwrap_no_change(self):
     tokens = ['ln', '-f', '-s', 'foo', 'bar']
     command = action_tracer.ToolCommand(tokens=tokens)
     self.assertEqual(command.unwrap().tokens, tokens)
 def test_command_with_args(self):
     command = action_tracer.ToolCommand(
         tokens=['ln', '-f', '-s', 'foo', 'bar'])
     self.assertEqual(command.env_tokens, [])
     self.assertEqual(command.tool, 'ln')
     self.assertEqual(command.args, ['-f', '-s', 'foo', 'bar'])
 def test_command_with_env(self):
     command = action_tracer.ToolCommand(tokens=['TMPDIR=/my/tmp', 'echo'])
     self.assertEqual(command.env_tokens, ['TMPDIR=/my/tmp'])
     self.assertEqual(command.tool, 'echo')
     self.assertEqual(command.args, [])
 def test_command_no_args(self):
     command = action_tracer.ToolCommand(tokens=['echo'])
     self.assertEqual(command.env_tokens, [])
     self.assertEqual(command.tool, 'echo')
     self.assertEqual(command.args, [])
 def test_empty_command(self):
     with self.assertRaises(IndexError):
         action_tracer.ToolCommand().tool