blob: 3f49f41f29916ed0ebd5f27e5a24b08f725abd92 [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001# 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
6class 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