from sut import MockAgent import mozdevice import logging import unittest class PullTest(unittest.TestCase): def test_pull_success(self): for count in [1, 4, 1024, 2048]: cheeseburgers = "" for i in range(count): cheeseburgers += "cheeseburgers" # pull file is kind of gross, make sure we can still execute commands after it's done remoteName = "/mnt/sdcard/cheeseburgers" a = MockAgent(self, commands=[("pull %s" % remoteName, "%s,%s\n%s" % (remoteName, len(cheeseburgers), cheeseburgers)), ("isdir /mnt/sdcard", "TRUE")]) d = mozdevice.DroidSUT("127.0.0.1", port=a.port, logLevel=logging.DEBUG) pulledData = d.pullFile("/mnt/sdcard/cheeseburgers") self.assertEqual(pulledData, cheeseburgers) d.dirExists('/mnt/sdcard') def test_pull_failure(self): # this test simulates only receiving a few bytes of what we expect # to be larger file remoteName = "/mnt/sdcard/cheeseburgers" a = MockAgent(self, commands=[("pull %s" % remoteName, "%s,15\n%s" % (remoteName, "cheeseburgh"))]) d = mozdevice.DroidSUT("127.0.0.1", port=a.port, logLevel=logging.DEBUG) exceptionThrown = False try: d.pullFile("/mnt/sdcard/cheeseburgers") except mozdevice.DMError: exceptionThrown = True self.assertTrue(exceptionThrown) if __name__ == '__main__': unittest.main()