diff --git a/biggraphite/drivers/cassandra.py b/biggraphite/drivers/cassandra.py index 6dc65b4ed7..e3cf69c155 100755 --- a/biggraphite/drivers/cassandra.py +++ b/biggraphite/drivers/cassandra.py @@ -936,8 +936,8 @@ def _extract_results(query_results): n_metrics += 1 if n_metrics > self.max_metrics_per_pattern: raise TooManyMetrics( - "Query yields more than %d results" % - (self.max_metrics_per_pattern) + "Query %s on %s yields more than %d results" % + (glob, table, self.max_metrics_per_pattern) ) yield result[0] diff --git a/tests/test_cassandra.py b/tests/test_cassandra.py index 8ff71220d7..6f4ac7f717 100644 --- a/tests/test_cassandra.py +++ b/tests/test_cassandra.py @@ -288,6 +288,17 @@ def assert_find(glob, expected_matches): self.accessor.drop_all_metrics() assert_find("*", []) + def test_glob_too_many_directories(self): + for name in "a", "a.b", "x.y.z": + metric = bg_test_utils.make_metric(name) + self.accessor.create_metric(metric) + + old_value = self.accessor.max_metrics_per_pattern + self.accessor.max_metrics_per_pattern = 1 + with self.assertRaises(bg_cassandra.TooManyMetrics): + list(self.accessor.glob_directory_names('**')) + self.accessor.max_metrics_per_pattern = old_value + def test_create_metrics(self): meta_dict = { "aggregator": bg_accessor.Aggregator.last,