# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Module containing a fake au worker class.""" import unittest import au_worker class DummyAUWorker(au_worker.AUWorker): """AU worker that emulates work for an au_worker without actually doing work. Collects different updates that would be generated that can be obtained from the class object delta_list. """ # Class variable that stores the list of payloads that would be needed. delta_list = {} def __init__(self, options, test_results_root): au_worker.AUWorker.__init__(self, options, test_results_root) self.au_type = options.type def PrepareBase(self, image_path): """Copy how the actual worker would prepare the base image.""" if self.au_type == 'vm': self.PrepareVMBase(image_path) else: self.PrepareRealBase(image_path) def UpdateImage(self, image_path, src_image_path='', stateful_change='old', proxy_port=None, private_key_path=None): """Emulate Update and record the update payload in delta_list.""" if self.au_type == 'vm' and src_image_path and self._first_update: src_image_path = self.vm_image_path self._first_update = False # Generate a value that combines delta with private key path. val = src_image_path if private_key_path: val = '%s+%s' % (val, private_key_path) if not self.delta_list.has_key(image_path): self.delta_list[image_path] = set([val]) else: self.delta_list[image_path].add(val)