# 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 dmunit import DeviceManagerTestCase class Push2TestCase(DeviceManagerTestCase): def runTest(self): """This tests copying a directory structure with files to the device. """ testroot = posixpath.join(self.dm.deviceRoot, 'infratest') self.dm.removeDir(testroot) self.dm.mkDir(testroot) path = posixpath.join(testroot, 'push2') self.dm.pushDir(os.path.join('test-files', 'push2'), path) # Let's walk the tree and make sure everything is there # though it's kind of cheesy, we'll use the validate file to compare # hashes - we use the client side hashing when testing the cat command # specifically, so that makes this a little less cheesy, I guess. self.assertTrue( self.dm.dirExists(posixpath.join(testroot, 'push2', 'sub1'))) self.assertTrue(self.dm.validateFile( posixpath.join(testroot, 'push2', 'sub1', 'file1.txt'), os.path.join('test-files', 'push2', 'sub1', 'file1.txt'))) self.assertTrue(self.dm.validateFile( posixpath.join(testroot, 'push2', 'sub1', 'sub1.1', 'file2.txt'), os.path.join('test-files', 'push2', 'sub1', 'sub1.1', 'file2.txt'))) self.assertTrue(self.dm.validateFile( posixpath.join(testroot, 'push2', 'sub2', 'file3.txt'), os.path.join('test-files', 'push2', 'sub2', 'file3.txt'))) self.assertTrue(self.dm.validateFile( posixpath.join(testroot, 'push2', 'file4.bin'), os.path.join('test-files', 'push2', 'file4.bin')))