def test_check_md5_unknown_valueerror2(self, mock_urlopen): """ Force ValueError on json to test try-catch """ jdata = PropertyMock(return_value=b'X') mock_urlopen.return_value = MagicMock(read=jdata) result = check_md5('.') mock_urlopen.assert_called_with('.ringmd5') self.assertEqual(result, [(STATUS_UNKNOWN, "Can't parse status data")])
def test_check_md5_unknown_valueerror1(self, mock_urlopen): """ Force ValueError on urllib.error.URLError to test try-except """ base_url = 'asdfasdf' url = '{}ringmd5'.format(base_url) mock_urlopen.side_effect = ValueError(Mock(return_value='')) result = check_md5(base_url) mock_urlopen.assert_called_with(url) self.assertEqual(result, [(STATUS_UNKNOWN, "Can't parse status data")])
def test_check_md5_unknown_urlerror(self, mock_urlopen): """ Force urllib2.URLError to test try-except """ base_url = 'http://localhost:6000/recon/' url = '{}ringmd5'.format(base_url) error = 'connection refused' mock_urlopen.side_effect = urllib2.URLError(Mock(return_value=error)) result = check_md5(base_url) self.assertEqual(result, [(STATUS_UNKNOWN, "Can't open url: {}".format(url))])
def test_check_md5_unknown_urlerror(self, mock_urlopen): """ Force urllib.request.URLError to test try-except """ base_url = 'http://localhost:6000/recon/' url = '{}ringmd5'.format(base_url) error = 'connection refused' mock_urlopen.side_effect = (urllib .error .URLError(Mock(return_value=error))) result = check_md5(base_url) self.assertEqual(result, [(STATUS_UNKNOWN, "Can't open url: {}".format(url))])
def test_check_md5_ok(self, mock_generate_md5): """ Ensure md5 checksums match, STATUS_OK """ jdata = b'{"/etc/swift/object.ring.gz": ' \ b'"6b4f3a0ef3731f18291ecd053ce0d9b6", ' \ b'"/etc/swift/account.ring.gz": ' \ b'"6b4f3a0ef3731f18291ecd053ce0d9b6", ' \ b'"/etc/swift/container.ring.gz": ' \ b'"6b4f3a0ef3731f18291ecd053ce0d9b6"}' pmock_jdata = PropertyMock(return_value=jdata) mock_generate_md5.return_value = '6b4f3a0ef3731f18291ecd053ce0d9b6' with patch('urllib.request.urlopen') as mock_urlopen: mock_urlopen.return_value = MagicMock(read=pmock_jdata) result = check_md5('.') mock_urlopen.assert_called_with('.ringmd5') self.assertEqual(result, [(STATUS_OK, 'OK')])
def test_check_md5_crit_md5sum_mismatch(self, mock_generate_md5): """ Ensure md5 checksums match, STATUS_CRIT """ jdata = b'{"/etc/swift/object.ring.gz": ' \ b'"6b4f3a0ef3731f18291ecd053ce0d9b6", ' \ b'"/etc/swift/account.ring.gz": ' \ b'"93fc4ae496a7343362ebf13988a137e7", ' \ b'"/etc/swift/container.ring.gz": ' \ b'"0ea1ec9585ef644ce2b5c5b1dced4128"}' pmock_jdata = PropertyMock(return_value=jdata) mock_generate_md5.return_value = 'xxxx' with patch('urllib.request.urlopen') as mock_urlopen: mock_urlopen.return_value = MagicMock(read=pmock_jdata) result = check_md5('.') mock_urlopen.assert_called_with('.ringmd5') expected_result = [(STATUS_CRIT, 'Ringfile /etc/swift/{}.ring.gz ' 'MD5 sum mismatch'.format(name)) for name in ('object', 'account', 'container')] self.assertEqual(result, expected_result)
def test_check_md5_unknown_ioerror(self, mock_generate_md5): """ Force IOError (reading file) to test try-catch """ jdata = b'{"/etc/swift/object.ring.gz": ' \ b'"6b4f3a0ef3731f18291ecd053ce0d9b6", ' \ b'"/etc/swift/account.ring.gz": ' \ b'"93fc4ae496a7343362ebf13988a137e7", ' \ b'"/etc/swift/container.ring.gz": ' \ b'"0ea1ec9585ef644ce2b5c5b1dced4128"}' pmock_jdata = PropertyMock(return_value=jdata) mock_generate_md5.side_effect = IOError() with patch('urllib.request.urlopen') as mock_urlopen: mock_urlopen.return_value = MagicMock(read=pmock_jdata) result = check_md5('.') mock_urlopen.assert_called_with('.ringmd5') expected_result = [(STATUS_UNKNOWN, "Can't open ringfile " "/etc/swift/{}.ring.gz".format(name)) for name in ('object', 'account', 'container')] self.assertEqual(result, expected_result)