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.default_labels = {'project': 'project_id'}
 | 
			
		||||
        self.rbac.rbac_init_succesful = True
 | 
			
		||||
        self.rbac.disable_rbac = False
 | 
			
		||||
 | 
			
		||||
        self.manager = python_api.QueryManager(self.client)
 | 
			
		||||
 | 
			
		||||
@@ -41,15 +42,32 @@ class QueryManagerTest(testtools.TestCase):
 | 
			
		||||
        self.client.query = self.manager
 | 
			
		||||
 | 
			
		||||
    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']
 | 
			
		||||
 | 
			
		||||
        with mock.patch.object(prometheus_client.PrometheusAPIClient, '_get',
 | 
			
		||||
                               return_value=returned_by_prom):
 | 
			
		||||
                               return_value=returned_by_prom_rbac):
 | 
			
		||||
            ret1 = self.manager.list()
 | 
			
		||||
            ret2 = self.manager.list(disable_rbac=True)
 | 
			
		||||
 | 
			
		||||
        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)
 | 
			
		||||
 | 
			
		||||
    def test_show(self):
 | 
			
		||||
@@ -79,7 +97,8 @@ class QueryManagerTest(testtools.TestCase):
 | 
			
		||||
        self.assertThat(ret2, expected_matcher)
 | 
			
		||||
 | 
			
		||||
    def test_query(self):
 | 
			
		||||
        query = 'some_metric'
 | 
			
		||||
        queried_metric_name = 'some_metric'
 | 
			
		||||
        query = queried_metric_name
 | 
			
		||||
        returned_by_prom = {
 | 
			
		||||
            'data': {
 | 
			
		||||
                'resultType': 'non-vector'
 | 
			
		||||
@@ -92,7 +111,9 @@ class QueryManagerTest(testtools.TestCase):
 | 
			
		||||
        expected = [prometheus_client.PrometheusMetric(returned_by_prom)]
 | 
			
		||||
        expected_matcher = MetricListMatcher(expected)
 | 
			
		||||
        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)
 | 
			
		||||
            self.rbac.enrich_query.assert_called_with(query,
 | 
			
		||||
                                                      disable_rbac=False)
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ class RbacTest(testtools.TestCase):
 | 
			
		||||
        self.rbac.default_labels = {
 | 
			
		||||
            "project": self.rbac.project_id
 | 
			
		||||
        }
 | 
			
		||||
        self.rbac.disable_rbac = False
 | 
			
		||||
 | 
			
		||||
    def test_constructor(self):
 | 
			
		||||
        with mock.patch.object(session.Session, 'get_project_id',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user