diff options
author | joaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-16 18:04:16 +0000 |
---|---|---|
committer | joaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-16 18:04:16 +0000 |
commit | 28c3287c5847ef48c2dcff12989bd8b4510cbd67 (patch) | |
tree | e0f11086550a592eb2b7fbda85edb9e5da3647a9 /net/tools | |
parent | e63bf74d490d57babb404b0b139f745311e08384 (diff) | |
download | chromium_src-28c3287c5847ef48c2dcff12989bd8b4510cbd67.zip chromium_src-28c3287c5847ef48c2dcff12989bd8b4510cbd67.tar.gz chromium_src-28c3287c5847ef48c2dcff12989bd8b4510cbd67.tar.bz2 |
Extended policy device_management support at the testserver to handle lists of protobufs.
BUG=None
TEST=The testserver can be used to push the AppPack device policy
Review URL: https://chromiumcodereview.appspot.com/9703116
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127201 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/tools')
-rw-r--r-- | net/tools/testserver/device_management.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/net/tools/testserver/device_management.py b/net/tools/testserver/device_management.py index 4cd1532..a7d16ff 100644 --- a/net/tools/testserver/device_management.py +++ b/net/tools/testserver/device_management.py @@ -314,8 +314,21 @@ class RequestHandler(object): if field.label == field.LABEL_REPEATED: assert type(field_value) == list entries = group_message.__getattribute__(field.name) - for list_item in field_value: - entries.append(list_item) + if field.message_type is None: + for list_item in field_value: + entries.append(list_item) + else: + # This field is itself a protobuf. + sub_type = field.message_type + for sub_value in field_value: + assert type(sub_value) == dict + # Add a new sub-protobuf per list entry. + sub_message = entries.add() + # Now iterate over its fields and recursively add them. + for sub_field in sub_message.DESCRIPTOR.fields: + if sub_field.name in sub_value: + value = sub_value[sub_field.name] + self.SetProtobufMessageField(sub_message, sub_field, value) return elif field.type == field.TYPE_BOOL: assert type(field_value) == bool |