Merge "Fix rbac mocking in unit tests"
This commit is contained in:
@@ -34,6 +34,7 @@ class QueryManagerTest(testtools.TestCase):
|
|||||||
self.rbac = mock.Mock(wraps=rbac.Rbac(self.client, mock.Mock()))
|
self.rbac = mock.Mock(wraps=rbac.Rbac(self.client, mock.Mock()))
|
||||||
self.rbac.default_labels = {'project': 'project_id'}
|
self.rbac.default_labels = {'project': 'project_id'}
|
||||||
self.rbac.rbac_init_succesful = True
|
self.rbac.rbac_init_succesful = True
|
||||||
|
self.rbac.disable_rbac = False
|
||||||
|
|
||||||
self.manager = python_api.QueryManager(self.client)
|
self.manager = python_api.QueryManager(self.client)
|
||||||
|
|
||||||
@@ -41,15 +42,32 @@ class QueryManagerTest(testtools.TestCase):
|
|||||||
self.client.query = self.manager
|
self.client.query = self.manager
|
||||||
|
|
||||||
def test_list(self):
|
def test_list(self):
|
||||||
returned_by_prom = {'data': ['metric1', 'test42', 'abc2']}
|
returned_by_prom_rbac = {
|
||||||
|
'data': [
|
||||||
|
{
|
||||||
|
'__name__': 'metric1',
|
||||||
|
'label1': 'foo'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'__name__': 'test42',
|
||||||
|
'anotherlabel': 'bar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'__name__': 'abc2',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
returned_by_prom_no_rbac = {'data': ['metric1', 'test42', 'abc2']}
|
||||||
expected = ['abc2', 'metric1', 'test42']
|
expected = ['abc2', 'metric1', 'test42']
|
||||||
|
|
||||||
with mock.patch.object(prometheus_client.PrometheusAPIClient, '_get',
|
with mock.patch.object(prometheus_client.PrometheusAPIClient, '_get',
|
||||||
return_value=returned_by_prom):
|
return_value=returned_by_prom_rbac):
|
||||||
ret1 = self.manager.list()
|
ret1 = self.manager.list()
|
||||||
ret2 = self.manager.list(disable_rbac=True)
|
|
||||||
|
|
||||||
self.assertEqual(expected, ret1)
|
self.assertEqual(expected, ret1)
|
||||||
|
|
||||||
|
with mock.patch.object(prometheus_client.PrometheusAPIClient, '_get',
|
||||||
|
return_value=returned_by_prom_no_rbac):
|
||||||
|
ret2 = self.manager.list(disable_rbac=True)
|
||||||
self.assertEqual(expected, ret2)
|
self.assertEqual(expected, ret2)
|
||||||
|
|
||||||
def test_show(self):
|
def test_show(self):
|
||||||
@@ -79,7 +97,8 @@ class QueryManagerTest(testtools.TestCase):
|
|||||||
self.assertThat(ret2, expected_matcher)
|
self.assertThat(ret2, expected_matcher)
|
||||||
|
|
||||||
def test_query(self):
|
def test_query(self):
|
||||||
query = 'some_metric'
|
queried_metric_name = 'some_metric'
|
||||||
|
query = queried_metric_name
|
||||||
returned_by_prom = {
|
returned_by_prom = {
|
||||||
'data': {
|
'data': {
|
||||||
'resultType': 'non-vector'
|
'resultType': 'non-vector'
|
||||||
@@ -92,7 +111,9 @@ class QueryManagerTest(testtools.TestCase):
|
|||||||
expected = [prometheus_client.PrometheusMetric(returned_by_prom)]
|
expected = [prometheus_client.PrometheusMetric(returned_by_prom)]
|
||||||
expected_matcher = MetricListMatcher(expected)
|
expected_matcher = MetricListMatcher(expected)
|
||||||
with mock.patch.object(prometheus_client.PrometheusAPIClient, '_get',
|
with mock.patch.object(prometheus_client.PrometheusAPIClient, '_get',
|
||||||
return_value=returned_by_prom):
|
return_value=returned_by_prom), \
|
||||||
|
mock.patch.object(python_api.QueryManager, 'list',
|
||||||
|
return_value=queried_metric_name):
|
||||||
ret1 = self.manager.query(query)
|
ret1 = self.manager.query(query)
|
||||||
self.rbac.enrich_query.assert_called_with(query,
|
self.rbac.enrich_query.assert_called_with(query,
|
||||||
disable_rbac=False)
|
disable_rbac=False)
|
||||||
|
@@ -29,6 +29,7 @@ class RbacTest(testtools.TestCase):
|
|||||||
self.rbac.default_labels = {
|
self.rbac.default_labels = {
|
||||||
"project": self.rbac.project_id
|
"project": self.rbac.project_id
|
||||||
}
|
}
|
||||||
|
self.rbac.disable_rbac = False
|
||||||
|
|
||||||
def test_constructor(self):
|
def test_constructor(self):
|
||||||
with mock.patch.object(session.Session, 'get_project_id',
|
with mock.patch.object(session.Session, 'get_project_id',
|
||||||
|
Reference in New Issue
Block a user