mirror of
https://github.com/openvswitch/ovs
synced 2025-10-27 15:18:06 +00:00
python/ovs/ovsuuid: Fix behavior of UUID.from_json() with no symbol table.
UUID.from_json(['named-uuid', 'x'], None) should raise an error about invalid syntax, but instead it was raising a TypeError because it would try to evaluate "'x' not in None". This fixes the problem and adds a test.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2009, 2010 Nicira Networks
|
# Copyright (c) 2009, 2010, 2011 Nicira Networks
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@@ -51,6 +51,8 @@ class UUID(uuid.UUID):
|
|||||||
raise error.Error("\"%s\" is not a valid UUID" % s, json)
|
raise error.Error("\"%s\" is not a valid UUID" % s, json)
|
||||||
return UUID(s)
|
return UUID(s)
|
||||||
except error.Error, e:
|
except error.Error, e:
|
||||||
|
if not symtab:
|
||||||
|
raise e
|
||||||
try:
|
try:
|
||||||
name = ovs.db.parser.unwrap_json(json, "named-uuid", unicode)
|
name = ovs.db.parser.unwrap_json(json, "named-uuid", unicode)
|
||||||
except error.Error:
|
except error.Error:
|
||||||
|
|||||||
@@ -260,6 +260,10 @@ OVSDB_CHECK_POSITIVE_CPY([uuid atom must be expressed as JSON array],
|
|||||||
[[parse-atoms '["uuid"]' '["550e8400-e29b-41d4-a716-446655440000"]']],
|
[[parse-atoms '["uuid"]' '["550e8400-e29b-41d4-a716-446655440000"]']],
|
||||||
[[syntax ""550e8400-e29b-41d4-a716-446655440000"": syntax error: expected ["uuid", <string>]]])
|
[[syntax ""550e8400-e29b-41d4-a716-446655440000"": syntax error: expected ["uuid", <string>]]])
|
||||||
|
|
||||||
|
OVSDB_CHECK_POSITIVE_CPY([named-uuid requires symbol table],
|
||||||
|
[parse-atoms '[["uuid"]]' '[["named-uuid", "x"]]'],
|
||||||
|
[[syntax "["named-uuid","x"]": syntax error: expected ["uuid", <string>]]])
|
||||||
|
|
||||||
OVSDB_CHECK_NEGATIVE([empty string atom must be quoted],
|
OVSDB_CHECK_NEGATIVE([empty string atom must be quoted],
|
||||||
[[parse-atom-strings '["string"]' '']],
|
[[parse-atom-strings '["string"]' '']],
|
||||||
[An empty string is not valid as input; use "" to represent the empty string])
|
[An empty string is not valid as input; use "" to represent the empty string])
|
||||||
|
|||||||
Reference in New Issue
Block a user