From e571ee44997973a3ccd39fc913a313cb6a5451b1 Mon Sep 17 00:00:00 2001 From: Adeodato Simo <dato@google.com> Date: Thu, 6 Jan 2011 12:27:40 +0000 Subject: [PATCH] ganeti.query_unittest.py: test lock fields too Additionally, change TestQueryFields.testSomeFields() to handle lists of fields shorter than 20 elements. Signed-off-by: Adeodato Simo <dato@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/query.py | 3 +++ test/ganeti.query_unittest.py | 13 ++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/query.py b/lib/query.py index 14c0d4fd5..7906c6792 100644 --- a/lib/query.py +++ b/lib/query.py @@ -1072,3 +1072,6 @@ INSTANCE_FIELDS = _BuildInstanceFields() #: Fields available for lock queries LOCK_FIELDS = _BuildLockFields() + +#: All available field lists +ALL_FIELD_LISTS = [NODE_FIELDS, INSTANCE_FIELDS, LOCK_FIELDS] diff --git a/test/ganeti.query_unittest.py b/test/ganeti.query_unittest.py index b713970ea..eb327af4f 100755 --- a/test/ganeti.query_unittest.py +++ b/test/ganeti.query_unittest.py @@ -763,7 +763,7 @@ class TestInstanceQuery(unittest.TestCase): class TestQueryFields(unittest.TestCase): def testAllFields(self): - for fielddefs in [query.NODE_FIELDS, query.INSTANCE_FIELDS]: + for fielddefs in query.ALL_FIELD_LISTS: result = query.QueryFields(fielddefs, None) self.assert_(isinstance(result, dict)) response = objects.QueryFieldsResponse.FromDict(result) @@ -776,10 +776,13 @@ class TestQueryFields(unittest.TestCase): rnd = random.Random(5357) for _ in range(10): - for fielddefs in [query.NODE_FIELDS, query.INSTANCE_FIELDS]: - fields = [fdef - for (fdef, _, _) in rnd.sample(fielddefs.values(), - rnd.randint(5, 20))] + for fielddefs in query.ALL_FIELD_LISTS: + if len(fielddefs) > 20: + sample_size = rnd.randint(5, 20) + else: + sample_size = rnd.randint(1, max(1, len(fielddefs) - 1)) + fields = [fdef for (fdef, _, _) in rnd.sample(fielddefs.values(), + sample_size)] result = query.QueryFields(fielddefs, [fdef.name for fdef in fields]) self.assert_(isinstance(result, dict)) response = objects.QueryFieldsResponse.FromDict(result) -- GitLab