# Copyright (c) 2013 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. class ShillTemporaryProfile(object): """Context enclosing the use of a temporary shill profile. It takes a shill manager dbus object and profile name, and makes sure that this profile is pushed atop the topmost default profile for the duration of this object lifetime.""" def __init__(self, manager, profile_name='test'): self._manager = manager self._profile_name = profile_name def __enter__(self): self._manager.PopAllUserProfiles() try: self._manager.RemoveProfile(self._profile_name) except: pass self._manager.CreateProfile(self._profile_name) self._manager.PushProfile(self._profile_name) return self def __exit__(self, exception, value, traceback): try: self._manager.PopProfile(self._profile_name) self._manager.RemoveProfile(self._profile_name) except: pass