blob: a9150db706c76043d7bfbca8b3a360071a07f719 [file] [log] [blame]
# 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