Beispiel #1
0
    def test_raises_error_when_any_hook_fails(self, mock_cmd_call, *args):
        """Assert that we raise an error when commands fail and we don't run subsequent commands."""
        good_response = Response(
            exitcode=0,
            stderr='',
            stdout='some info',
            command_string='my --command',
        )
        bad_response = Response(
            exitcode=127,
            stderr='found exit code 127 set in test mock',
            stdout='here would be stdout',
            command_string='mock --command',
        )

        _hook = Hook(['', '', ''], "test_raises_error_when_any_hook_fails", '')

        mock_cmd_call.side_effect = [
            good_response, bad_response, good_response
        ]

        with self.assertRaises(ReckonerCommandException):
            _hook.run()

        self.assertEqual(mock_cmd_call.call_count, 2,
                         "Call two should fail and not run the third hook.")
Beispiel #2
0
    def test_hooks_support_strings(self, mock_cmd_call, *args):
        """Assert that hooks can be defined as a string"""
        _hook = Hook('works', 'test_hooks_support_strings')

        mock_cmd_call.side_effect = [
            Response(command_string='command',
                     stderr='err-output',
                     stdout='output',
                     exitcode=0)
        ]
        _hook.run()
        mock_cmd_call.assert_called_once()
Beispiel #3
0
 def test_execution_directory(self, mock_cmd_call, *args):
     """Assert that we're executing in the same directory as the course yml"""
     _path = '/path/where/course/lives/'
     _fake_command = 'fake --command'
     _hook = Hook(_fake_command, 'test_execution_directory_hook', _path)
     mock_cmd_call.side_effect = [
         Response(command_string=_fake_command,
                  stderr='err-output',
                  stdout='output',
                  exitcode=0)
     ]
     _hook.run()
     mock_cmd_call.assert_called_with(_fake_command,
                                      shell=True,
                                      executable='/bin/bash',
                                      path=_path)
Beispiel #4
0
    def test_hooks_support_list(self, mock_cmd_call, *args):
        """Assert that hooks can be defined as lists"""
        _hook = Hook([
            'works',
            'twice works',
        ], 'test_hooks_support_list')

        mock_cmd_call.side_effect = [
            Response(command_string='command',
                     stderr='err-output',
                     stdout='output',
                     exitcode=0),
            Response(command_string='command',
                     stderr='err-output',
                     stdout='output',
                     exitcode=0),
        ]
        _hook.run()
        self.assertTrue(mock_cmd_call.call_count == 2)