From ccc898f5c79bee1e35b7e91ca1edd3c7bad59fec Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 27 Jun 2012 09:56:20 -0700 Subject: [PATCH] tests: Fix MockXenAPI to make the ovs-xapi-sync test case pass again. Commit 1dc6839d2d (xenserver: Improve efficiency of code by using get_all_records_where()) updated the ovs-xapi-sync script and caused a unit test failure. This fixes it. Signed-off-by: Ben Pfaff --- tests/MockXenAPI.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/MockXenAPI.py b/tests/MockXenAPI.py index 0c02dd549..cca1571fe 100644 --- a/tests/MockXenAPI.py +++ b/tests/MockXenAPI.py @@ -1,4 +1,4 @@ -# Copyright (c) 2011 Nicira, Inc. +# Copyright (c) 2011, 2012 Nicira, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +import re + def xapi_local(): return Session() @@ -48,6 +50,20 @@ class Table(object): def get_all(self): return [RecordRef(rec) for rec in self.records] + def get_all_records_where(self, condition): + k, v = re.match(r'field "([^"]*)"="([^"]*)"$', condition).groups() + d = {} + + # I'm sure that the keys used in the dictionary below are wrong + # but I can't find any documentation on get_all_records_where + # and this satisfies the current test case. + i = 0 + for rec in self.records: + if rec[k] == v: + d[i] = rec + i += 1 + return d + def get_by_uuid(self, uuid): recs = [rec for rec in self.records if rec["uuid"] == uuid] if len(recs) != 1: -- 2.43.0