|
1 # This Source Code Form is subject to the terms of the Mozilla Public |
|
2 # License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
|
4 |
|
5 import os |
|
6 import posixpath |
|
7 from StringIO import StringIO |
|
8 |
|
9 from dmunit import DeviceManagerTestCase |
|
10 |
|
11 class ExecEnvTestCase(DeviceManagerTestCase): |
|
12 |
|
13 def runTest(self): |
|
14 """Exec test with env vars.""" |
|
15 # Push the file |
|
16 localfile = os.path.join('test-files', 'test_script.sh') |
|
17 remotefile = posixpath.join(self.dm.getDeviceRoot(), 'test_script.sh') |
|
18 self.dm.pushFile(localfile, remotefile) |
|
19 |
|
20 # Run the cmd |
|
21 out = StringIO() |
|
22 self.dm.shell(['sh', remotefile], out, env={'THE_ANSWER': 42}) |
|
23 |
|
24 # Rewind the output file |
|
25 out.seek(0) |
|
26 # Make sure first line is 42 |
|
27 line = out.readline() |
|
28 self.assertTrue(int(line) == 42) |
|
29 |
|
30 # Clean up |
|
31 self.dm.removeFile(remotefile) |