# 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)
