summaryrefslogtreecommitdiffstats
path: root/net/tools
diff options
context:
space:
mode:
authorjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-16 18:04:16 +0000
committerjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-16 18:04:16 +0000
commit28c3287c5847ef48c2dcff12989bd8b4510cbd67 (patch)
treee0f11086550a592eb2b7fbda85edb9e5da3647a9 /net/tools
parente63bf74d490d57babb404b0b139f745311e08384 (diff)
downloadchromium_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.py17
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