| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| import os |
| import posixpath |
| from StringIO import StringIO |
| |
| from dmunit import DeviceManagerTestCase |
| |
| class ExecEnvTestCase(DeviceManagerTestCase): |
| |
| def runTest(self): |
| """Exec test with env vars.""" |
| # Push the file |
| localfile = os.path.join('test-files', 'test_script.sh') |
| remotefile = posixpath.join(self.dm.deviceRoot, 'test_script.sh') |
| self.dm.pushFile(localfile, remotefile) |
| |
| # Run the cmd |
| out = StringIO() |
| self.dm.shell(['sh', remotefile], out, env={'THE_ANSWER': 42}) |
| |
| # Rewind the output file |
| out.seek(0) |
| # Make sure first line is 42 |
| line = out.readline() |
| self.assertTrue(int(line) == 42) |
| |
| # Clean up |
| self.dm.removeFile(remotefile) |