def test_port_range_available(httpserver_mock):
    """Test port range setup with an available port."""
    httpserver_mock.side_effect = [socket.error, MagicMock()]
    port_range = [8000, 8001]
    port_chosen = SetupPrometheusEndpointOnPortRange(port_range)

    expected_calls = [call(("", 8000), ANY), call(("", 8001), ANY)]
    assert httpserver_mock.mock_calls == expected_calls
    def testPortRange(self, httpserver_mock):
        httpserver_mock.side_effect = [socket.error, MagicMock()]
        port_range = [8000, 8001]
        SetupPrometheusEndpointOnPortRange(port_range)

        expected_calls = [
            call(('', 8000), ANY),
            call(('', 8001), ANY),
        ]
        self.assertEqual(httpserver_mock.mock_calls, expected_calls)
    def testPortRangeUnavailable(self, httpserver_mock):
        """Test port range setup with no available ports."""
        httpserver_mock.side_effect = [socket.error, socket.error]
        port_range = [8000, 8001]
        port_chosen = SetupPrometheusEndpointOnPortRange(port_range)

        expected_calls = [
            call(('', 8000), ANY),
            call(('', 8001), ANY),
        ]
        self.assertEqual(httpserver_mock.mock_calls, expected_calls)
        self.assertIsNone(port_chosen)