1 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 6 class Environment(object): 7 """An environment in which tests can be run. 8 9 This is expected to handle all logic that is applicable to an entire specific 10 environment but is independent of the test type. 11 12 Examples include: 13 - The local device environment, for running tests on devices attached to 14 the local machine. 15 - The local machine environment, for running tests directly on the local 16 machine. 17 """ 18 19 def __init__(self): 20 pass 21 22 def SetUp(self): 23 raise NotImplementedError 24 25 def TearDown(self): 26 raise NotImplementedError 27 28 def __enter__(self): 29 self.SetUp() 30 return self 31 32 def __exit__(self, _exc_type, _exc_val, _exc_tb): 33 self.TearDown() 34 35