def test_kind_clientside_filtering(self): val = self._build_events([('ns1', 'k1'), ('ns1', 'k1'), ('ns1', 'k2'), ('ns1', 'k3')]) with patch.object(self.kube, 'retrieve_json_auth', return_value=val) as mock_method: retr = KubeEventRetriever(self.kube, kinds=['k1', 'k2']) events = retr.get_event_array() self.assertEquals(3, len(events)) mock_method.assert_called_once_with('https://kubernetes/api/v1/events', params={})
def test_namespace_serverside_filtering(self): with patch.object(self.kube, 'retrieve_json_auth', return_value={}) as mock_method: retr = KubeEventRetriever(self.kube, namespaces=['testns']) retr.get_event_array() mock_method.assert_called_once_with( 'https://kubernetes/api/v1/namespaces/testns/events', params={})
def test_namespace_clientside_filtering(self): val = self._build_events([('ns1', 'k1'), ('ns2', 'k1'), ('testns', 'k1')]) with patch.object(self.kube, 'retrieve_json_auth', return_value=MockResponse(val, 200)) as mock_method: retr = KubeEventRetriever(self.kube, namespaces=['testns', 'ns2']) events = retr.get_event_array() self.assertEquals(2, len(events)) mock_method.assert_called_once_with('https://kubernetes:443/api/v1/events', params={})
def test_kind_serverside_filtering(self): with patch.object(self.kube, 'retrieve_json_auth', return_value={}) as mock_method: retr = KubeEventRetriever(self.kube, kinds=['k1']) retr.get_event_array() mock_method.assert_called_once_with( 'https://kubernetes:443/api/v1/events', params={'fieldSelector': 'involvedObject.kind=k1'})
def test_kind_clientside_filtering(self): val = self._build_events([('ns1', 'k1'), ('ns1', 'k1'), ('ns1', 'k2'), ('ns1', 'k3')]) with patch.object(self.kube, 'retrieve_json_auth', return_value=val) as mock_method: retr = KubeEventRetriever(self.kube, kinds=['k1', 'k2']) events = retr.get_event_array() self.assertEquals(3, len(events)) mock_method.assert_called_once_with( 'https://kubernetes:443/api/v1/events', params={})
def test_namespace_clientside_filtering(self): val = self._build_events([('ns1', 'k1'), ('ns2', 'k1'), ('testns', 'k1')]) with patch.object(self.kube, 'retrieve_json_auth', return_value=MockResponse(val, 200)) as mock_method: retr = KubeEventRetriever(self.kube, namespaces=['testns', 'ns2']) events = retr.get_event_array() self.assertEquals(2, len(events)) mock_method.assert_called_once_with( 'https://kubernetes:443/api/v1/events', params={})
def test_events_resversion_filtering(self): jsons = self._load_json_array( ['service_cache_events1.json', 'service_cache_events2.json', 'service_cache_events2.json']) with patch.object(self.kube, 'retrieve_json_auth', side_effect=jsons): retr = KubeEventRetriever(self.kube) events = retr.get_event_array() self.assertEquals(3, len(events)) self.assertEquals(2707, retr.last_resversion) events = retr.get_event_array() self.assertEquals(2, len(events)) # 5 events total self.assertEquals(2709, retr.last_resversion) events = retr.get_event_array() self.assertEquals(0, len(events)) # No new event self.assertEquals(2709, retr.last_resversion)
def test_events_lasttimestamp_filtering(self): jsons = self._load_resp_array( ['service_cache_events1.json', 'service_cache_events2.json', 'service_cache_events2.json']) with patch.object(self.kube, 'retrieve_json_auth', side_effect=jsons): retr = KubeEventRetriever(self.kube) events = retr.get_event_array() self.assertEquals(3, len(events)) self.assertEquals(1491471904, retr.lastTimestamp) events = retr.get_event_array() self.assertEquals(2, len(events)) # 5 events total self.assertEquals(1491471953, retr.lastTimestamp) events = retr.get_event_array() self.assertEquals(0, len(events)) # No new event self.assertEquals(1491471953, retr.lastTimestamp)
def test_events_resversion_filtering(self): jsons = self._load_json_array([ 'service_cache_events1.json', 'service_cache_events2.json', 'service_cache_events2.json' ]) with patch.object(self.kube, 'retrieve_json_auth', side_effect=jsons): retr = KubeEventRetriever(self.kube) events = retr.get_event_array() self.assertEquals(3, len(events)) self.assertEquals(2707, retr.last_resversion) events = retr.get_event_array() self.assertEquals(2, len(events)) # 5 events total self.assertEquals(2709, retr.last_resversion) events = retr.get_event_array() self.assertEquals(0, len(events)) # No new event self.assertEquals(2709, retr.last_resversion)
def test_events_lasttimestamp_filtering(self): jsons = self._load_resp_array([ 'service_cache_events1.json', 'service_cache_events2.json', 'service_cache_events2.json' ]) with patch.object(self.kube, 'retrieve_json_auth', side_effect=jsons): retr = KubeEventRetriever(self.kube) events = retr.get_event_array() self.assertEquals(3, len(events)) self.assertEquals(1491471904, retr.lastTimestamp) events = retr.get_event_array() self.assertEquals(2, len(events)) # 5 events total self.assertEquals(1491471953, retr.lastTimestamp) events = retr.get_event_array() self.assertEquals(0, len(events)) # No new event self.assertEquals(1491471953, retr.lastTimestamp)
def test_events_delay(self, mock_time): jsons = self._load_json_array( ['service_cache_events1.json', 'service_cache_events2.json']) with patch.object(self.kube, 'retrieve_json_auth', side_effect=jsons): retr = KubeEventRetriever(self.kube, delay=500) mock_time.return_value = 10000 events = retr.get_event_array() self.assertEquals(3, len(events)) self.assertEquals(2707, retr.last_resversion) # Must skip request mock_time.return_value = 10400 events = retr.get_event_array() self.assertEquals(0, len(events)) self.assertEquals(2707, retr.last_resversion) # Must retrieve events mock_time.return_value = 10600 events = retr.get_event_array() self.assertEquals(2, len(events)) self.assertEquals(2709, retr.last_resversion)
def get_event_retriever(self, namespaces=None, kinds=None, delay=None): """ Returns a KubeEventRetriever object ready for action """ return KubeEventRetriever(self, namespaces, kinds, delay)
def test_kind_serverside_filtering(self): with patch.object(self.kube, 'retrieve_json_auth', return_value={}) as mock_method: retr = KubeEventRetriever(self.kube, kinds=['k1']) retr.get_event_array() mock_method.assert_called_once_with('https://kubernetes/api/v1/events', params={'fieldSelector': 'involvedObject.kind=k1'})
def test_namespace_serverside_filtering(self): with patch.object(self.kube, 'retrieve_json_auth', return_value={}) as mock_method: retr = KubeEventRetriever(self.kube, namespaces=['testns']) retr.get_event_array() mock_method.assert_called_once_with('https://kubernetes/api/v1/namespaces/testns/events', params={})