Example #1
0
    def test_no_and_partialsecret_data(self, mock_secret):
        """When secret is valid, interpolate urlTemplate"""
        expr = ExperimentResource(**er_example)
        metric_resource: MetricResource = expr.status.metrics[0].metricObj
        metric_resource.spec.urlTemplate = "https://prometheus.com:${port}/$endpoint"
        metric_resource.spec.secret = "valid"

        mock_secret.return_value = ({
            "port": 8080,
            "endpoint": "nothingtosee"
        }, None)
        (url, err) = get_url(metric_resource)
        mock_secret.assert_called_with(metric_resource)
        assert url == "https://prometheus.com:8080/nothingtosee"
        assert err is None

        mock_secret.return_value = ({"port": 8080}, None)
        (url, err) = get_url(metric_resource)
        mock_secret.assert_called_with(metric_resource)
        assert url == "https://prometheus.com:8080/$endpoint"
        assert err is None

        mock_secret.return_value = {}, None
        (url, err) = get_url(metric_resource)
        mock_secret.assert_called_with(metric_resource)
        assert url == "https://prometheus.com:${port}/$endpoint"
        assert err is None

        mock_secret.return_value = None, None
        (url, err) = get_url(metric_resource)
        mock_secret.assert_called_with(metric_resource)
        assert url == "https://prometheus.com:${port}/$endpoint"
        assert err is None
Example #2
0
 def test_no_secret_ref(self, mock_secret):
     """When secret is None, url equals urlTemplate"""
     expr = ExperimentResource(**er_example)
     metric_resource: MetricResource = expr.status.metrics[0].metricObj
     url, _ = get_url(metric_resource)
     self.assertFalse(mock_secret.called, \
         "attempt to fetch secret when no secret is referenced in metric resource")
     assert url == metric_resource.spec.urlTemplate
Example #3
0
 def test_invalid_secret(self, mock_secret):
     """When secret is invalid, get error"""
     expr = ExperimentResource(**er_example)
     metric_resource: MetricResource = expr.status.metrics[0].metricObj
     metric_resource.spec.secret = "invalid"
     mock_secret.return_value = ({}, \
         KeyError("cannot find secret invalid in namespace iter8-system"))
     (url, err) = get_url(metric_resource)
     mock_secret.assert_called_with(metric_resource)
     assert url is None
     assert err is not None