summaryrefslogtreecommitdiffstats
path: root/testing/mozbase/mozdevice/sut_tests/test_getdir.py
blob: 00ea8c9ae372187fd943d6f0362f2a75b8882044 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 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
import shutil
import tempfile

from mozdevice.devicemanager import DMError
from dmunit import DeviceManagerTestCase


class GetDirectoryTestCase(DeviceManagerTestCase):

    def _setUp(self):
        self.localsrcdir = tempfile.mkdtemp()
        os.makedirs(os.path.join(self.localsrcdir, 'push1', 'sub.1', 'sub.2'))
        path = os.path.join(self.localsrcdir,
                            'push1', 'sub.1', 'sub.2', 'testfile')
        file(path, 'w').close()
        os.makedirs(os.path.join(self.localsrcdir, 'push1', 'emptysub'))
        self.localdestdir = tempfile.mkdtemp()
        self.expected_filelist = ['emptysub', 'sub.1']

    def tearDown(self):
        shutil.rmtree(self.localsrcdir)
        shutil.rmtree(self.localdestdir)

    def runTest(self):
        """This tests the getDirectory() function.
        """
        testroot = posixpath.join(self.dm.deviceRoot, 'infratest')
        self.dm.removeDir(testroot)
        self.dm.mkDir(testroot)
        self.dm.pushDir(
            os.path.join(self.localsrcdir, 'push1'),
            posixpath.join(testroot, 'push1'))
        # pushDir doesn't copy over empty directories, but we want to make sure
        # that they are retrieved correctly.
        self.dm.mkDir(posixpath.join(testroot, 'push1', 'emptysub'))
        self.dm.getDirectory(posixpath.join(testroot, 'push1'),
                             os.path.join(self.localdestdir, 'push1'))
        self.assertTrue(os.path.exists(
            os.path.join(self.localdestdir,
                         'push1', 'sub.1', 'sub.2', 'testfile')))
        self.assertTrue(os.path.exists(
            os.path.join(self.localdestdir, 'push1', 'emptysub')))
        self.assertRaises(DMError, self.dm.getDirectory,
                          '/dummy', os.path.join(self.localdestdir, '/none'))
        self.assertFalse(os.path.exists(self.localdestdir + '/none'))