def test_report_node_metrics_kubernetes1_18(monkeypatch, aggregator):
    check = KubeletCheck('kubelet', None, {}, [{}])
    check.kubelet_credentials = KubeletCredentials({'verify_tls': 'false'})
    check.node_spec_url = "http://localhost:10255/spec"

    get = mock.MagicMock(status_code=404, iter_lines=lambda **kwargs: "Error Code")
    get.raise_for_status.side_effect = requests.HTTPError('error')
    with mock.patch('requests.get', return_value=get):
        check._report_node_metrics(['foo:bar'])
        aggregator.assert_all_metrics_covered()
def test_report_node_metrics(monkeypatch):
    check = KubeletCheck('kubelet', None, {}, [{}])
    mock_resp = mock.Mock(status_code=200, raise_for_status=mock.Mock())
    mock_resp.json = mock.Mock(return_value={'num_cores': 4, 'memory_capacity': 512})
    monkeypatch.setattr(check, '_retrieve_node_spec', mock.Mock(return_value=mock_resp))
    monkeypatch.setattr(check, 'gauge', mock.Mock())
    check._report_node_metrics(['foo:bar'])
    calls = [
        mock.call('kubernetes.cpu.capacity', 4.0, ['foo:bar', 'cluster_name:stubbed-cluster-name']),
        mock.call('kubernetes.memory.capacity', 512.0, ['foo:bar', 'cluster_name:stubbed-cluster-name']),
    ]
    check.gauge.assert_has_calls(calls, any_order=False)