예제 #1
0
    def test_unregister_unknown_host(self, mock_unlink):
        """Unregister an unknown host (an host with a systemid available
        locally, check that result contains failed"""

        set_module_args({
            'activationkey': 'key',
            'username': '******',
            'password': '******',
            'state': 'absent',
        })

        responses = [
            ('auth.login', ['X' * 43]),
            ('system.deleteSystems',
             xmlrpc_client.Fault(
                 1003, 'The following systems were NOT deleted: 123456789')),
            ('auth.logout', [1]),
        ]

        with patch.object(basic.AnsibleModule, 'run_command') as run_command:
            run_command.return_value = 0, '', ''  # successful execution, no output
            mock_is_registered = PropertyMock(return_value=True)
            mock_systemid = PropertyMock(return_value=12345)
            with patch.multiple(rhn_register.Rhn,
                                systemid=mock_systemid,
                                is_registered=mock_is_registered):
                with mock_request(responses):
                    with self.assertRaises(AnsibleFailJson) as result:
                        self.module.main()
                    self.assertTrue(result.exception.args[0]['failed'])
                self.assertFalse(
                    responses)  # all responses should have been consumed
            self.assertEqual(mock_systemid.call_count, 1)
            self.assertEqual(mock_is_registered.call_count, 1)
        self.assertFalse(run_command.called)
        self.assertFalse(mock_unlink.called)
     }
 ],
 [
     # Unregister an unknown host (an host with a systemid available locally, check that result contains failed
     {
         'activationkey': 'key',
         'username': '******',
         'password': '******',
         'state': 'absent',
     },
     {
         'calls': [
             ('auth.login', ['X' * 43]),
             ('system.deleteSystems',
              xmlrpc_client.Fault(
                  1003,
                  'The following systems were NOT deleted: 123456789')),
             ('auth.logout', [1]),
         ],
         'is_registered':
         True,
         'is_registered.call_count':
         1,
         'enable.call_count':
         0,
         'systemid.call_count':
         1,
         'failed':
         True,
         'msg':
         "Failed to unregister: <Fault 1003: 'The following systems were NOT deleted: 123456789'>",