예제 #1
0
    def test_request_data_can_use_different_ports(self, requests_mock):
        requests_mock.get('http://tchaikovsky:12345/api/3/demo',
                          json={'sup': 'universe'})
        requests_mock.get('http://tchaikovsky:61208/api/3/demo',
                          json={'hello': 'world'})

        assert glance.request_data('tchaikovsky', 'demo', port=12345) == {
            'sup': 'universe'
        }
예제 #2
0
    def test_request_data_passes_timeout_to_requests(self, monkeypatch):

        timeout_values = []

        class MockResponse:
            def json(self):
                return {}

        def patched_get(*args, **kwargs):
            timeout_values.append(kwargs.get('timeout'))
            return MockResponse()

        monkeypatch.setattr(requests, 'get', patched_get)

        glance.request_data('tchaikovsky', 'demo')
        glance.request_data('tchaikovsky', 'demo', timeout=1.7)

        assert timeout_values == [0.5, 1.7]
예제 #3
0
    def test_request_data_can_hit_different_endpoints(self, requests_mock):
        requests_mock.get('http://tchaikovsky:61208/api/3/demo',
                          json={'hello': 'world'})
        requests_mock.get('http://tchaikovsky:61208/api/3/status',
                          json={'how u doin': 'im fine'})

        assert glance.request_data('tchaikovsky', 'status') == {
            'how u doin': 'im fine'
        }
예제 #4
0
 def test_request_data_only_supports_the_v3_api(self):
     with pytest.raises(NotImplementedError,
                        match='only supports the Glances v3 API'):
         glance.request_data('tchaikovsky', 'demo', api_version=2)
예제 #5
0
    def test_request_data_returns_dict(self, requests_mock):
        requests_mock.get('http://tchaikovsky:61208/api/3/demo',
                          json={'hello': 'world'})

        assert glance.request_data('tchaikovsky', 'demo') == {'hello': 'world'}
예제 #6
0
 def test_non_json_endpoint_raises_value_error(self, requests_mock):
     requests_mock.get('http://tchaikovsky:61208/api/3/hello',
                       text='Hello world!')
     with pytest.raises(ValueError):
         glance.request_data('tchaikovsky', 'hello')
예제 #7
0
 def test_unavailable_server_raises_connection_error(self):
     with pytest.raises(requests.ConnectionError):
         glance.request_data('tchaikovsky', 'all')