Exemplo n.º 1
0
 def test_get_tag_values_for_value_filter_partial_match(self):
     """Test that the execute query runs properly with value query."""
     key = "version"
     value = "a"
     url = f"/version/?filter[value]={value}"
     query_params = self.mocked_query_params(url, OCPTagView)
     # the mocked query parameters dont include the key from the url so it needs to be added
     query_params.kwargs = {"key": key}
     handler = OCPTagQueryHandler(query_params)
     with tenant_context(self.tenant):
         storage_tags = (OCPTagsValues.objects.filter(
             key__exact=key,
             value__icontains=value).values("value").distinct().all())
         storage_values = [tag.get("value") for tag in storage_tags]
         usage_tags = (OCPTagsValues.objects.filter(
             key__exact=key,
             value__icontains=value).values("value").distinct().all())
         usage_values = [tag.get("value") for tag in usage_tags]
         # remove duplicates from the values
         tag_values = list(dict.fromkeys(storage_values + usage_values))
     expected = {"key": key, "values": tag_values}
     result = handler.get_tag_values()
     self.assertEqual(result[0].get("key"), expected.get("key"))
     self.assertEqual(sorted(result[0].get("values")),
                      sorted(expected.get("values")))
Exemplo n.º 2
0
 def test_get_tag_values_for_value_filter(self):
     """Test that get tag values runs properly with value query."""
     key = "version"
     value = "Andromeda"
     url = f"?filter[value]={value}"
     query_params = self.mocked_query_params(url, OCPTagView)
     handler = OCPTagQueryHandler(query_params)
     handler.key = key
     with tenant_context(self.tenant):
         storage_tags = (OCPTagsValues.objects.filter(
             key__exact=key,
             value__icontains=value).values("value").distinct().all())
         tag_values = [tag.get("value") for tag in storage_tags]
     expected = {"key": key, "values": tag_values}
     result = handler.get_tag_values()
     self.assertEqual(result[0].get("key"), expected.get("key"))
     self.assertEqual(sorted(result[0].get("values")),
                      sorted(expected.get("values")))
Exemplo n.º 3
0
    def test_get_tag_values_for_value_filter_RBAC_cluster(self):
        """Test that the execute query runs properly with value query and an RBAC restriction on cluster."""
        key = "app"
        value = "b"
        url = f"/app/?filter[value]={value}"
        query_params = self.mocked_query_params(url, OCPTagView)
        # the mocked query parameters dont include the key from the url so it needs to be added
        query_params.kwargs = {"key": key}
        handler = OCPTagQueryHandler(query_params)
        with tenant_context(self.tenant):
            tags = (OCPTagsValues.objects.filter(
                key__exact=key,
                value__icontains=value).values("value").distinct().all())
            tag_values = [tag.get("value") for tag in tags]

        expected = {"key": key, "values": tag_values}
        result = handler.get_tag_values()
        self.assertEqual(result[0].get("key"), expected.get("key"))
        self.assertEqual(sorted(result[0].get("values")),
                         sorted(expected.get("values")))