Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / build / android / pylib / utils / device_temp_file_test.py
1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """
7 Unit tests for the contents of device_temp_file.py.
8 """
9
10 import logging
11 import os
12 import sys
13 import unittest
14
15 from pylib import constants
16 from pylib.utils import device_temp_file
17
18 sys.path.append(os.path.join(
19     constants.DIR_SOURCE_ROOT, 'third_party', 'pymock'))
20 import mock # pylint: disable=F0401
21
22 class DeviceTempFileTest(unittest.TestCase):
23
24   def setUp(self):
25     self.device_utils = mock.MagicMock()
26
27   def testTempFileNameAlreadyExists(self):
28     self.device_utils.GetExternalStoragePath.return_value = '/sdcard'
29     self.device_utils.FileExists.side_effect = [True, True, True, False]
30
31     tmpfile = device_temp_file.DeviceTempFile(self.device_utils)
32     logging.debug('Temp file name: %s' % tmpfile.name)
33     self.assertEqual(self.device_utils.FileExists.call_count, 4)
34     self.device_utils.WriteFile.assert_called_with(tmpfile.name, '')
35
36   def testTempFileLifecycle(self):
37     self.device_utils.GetExternalStoragePath.return_value = '/sdcard'
38     self.device_utils.FileExists.return_value = False
39
40     with device_temp_file.DeviceTempFile(self.device_utils) as tmpfile:
41       filename = tmpfile.name
42       self.assertEqual(self.device_utils.WriteFile.call_count, 1)
43       self.assertNotEqual(self.device_utils.RunShellCommand.call_args,
44           mock.call(['rm', mock.ANY]))
45
46     self.assertEqual(self.device_utils.RunShellCommand.call_args,
47         mock.call(['rm', filename]))
48
49 if __name__ == '__main__':
50   logging.getLogger().setLevel(logging.DEBUG)
51   unittest.main(verbosity=2)