Esempio n. 1
0
    def testPathUploadToCloud_invalid_fileName(self):
        # avoid warning resourcewarning unclosed ssl.sslsocket due to Dropbox
        warnings.filterwarnings(action="ignore",
                                message="unclosed",
                                category=ResourceWarning)

        if os.name == 'posix':
            localProjectDir = '/storage/emulated/0/Android/data/ru.iiec.pydroid3/files/trans_file_cloud/test/testproject_2/projectdir'
            configFilePathName = '/storage/emulated/0/Android/data/ru.iiec.pydroid3/files/trans_file_cloud/test/test_TransferFiles.ini'
        else:
            localProjectDir = 'D:\\Development\\Python\\trans_file_cloud\\test\\testproject_2\\projectdir'
            configFilePathName = 'D:\\Development\\Python\\trans_file_cloud\\test\\test_TransferFiles.ini'

        # cleaning up the target cloud folder

        cm = ConfigManager(configFilePathName)
        projectName = 'TransferPathFilesTestProject'
        drpa = DropboxAccess(cm, projectName)

        cloudFileLst = drpa.getCloudFilePathNameList()

        for file in cloudFileLst:
            drpa.deleteFile(file)

        self.assertEqual([], drpa.getCloudFilePathNameList())

        # reading and rewriting test project files to update their modification date

        fileToUploadLst = ['youtube-dl test video \'\'_ä↭𝕐-BaW_jenozKc.m4a']

        filePathNameToUploadLst = [
            localProjectDir + sep + x for x in fileToUploadLst
        ]

        # simulating user input

        stdin = sys.stdin

        # selecting project 1 (the test project 'TransferFilesTestProject' is
        # the first project defined in test_TransferFiles.ini !)
        sys.stdin = StringIO('2')

        print('\nstdout temporarily captured. Test is running ...')

        stdout = sys.stdout
        outputCapturingString = StringIO()
        sys.stdout = outputCapturingString

        # now asking TransferFiles to upload the modified files

        tf = TransferFiles(configFilePath=configFilePathName)
        outputCapturingString = StringIO()
        sys.stdout = outputCapturingString
        tf.pathUploadToCloud(filePathNameToUploadLst)

        sys.stdin = stdin
        sys.stdout = stdout

        expectedUploadedFilePathNameLst = []

        actualUploadedFilePathNameLst = drpa.getCloudFilePathNameList()
        self.assertEqual(sorted(expectedUploadedFilePathNameLst),
                         sorted(actualUploadedFilePathNameLst))

        if os.name == 'posix':
            self.assertTrue(
                '\tUploading test/testproject_2/projectdir/youtube-dl test video \'\'_ä↭𝕐-BaW_jenozKc.m4a failed. Possible cause: invalid file name ...'
                in outputCapturingString.getvalue())
        else:
            self.assertTrue(
                '\tUploading test\\testproject_2\projectdir\youtube-dl test video \'\'_ä↭𝕐-BaW_jenozKc.m4a failed. Possible cause: invalid file name ...'
                in outputCapturingString.getvalue())
Esempio n. 2
0
    def testPathUploadToCloud(self):
        # avoid warning resourcewarning unclosed ssl.sslsocket due to Dropbox
        warnings.filterwarnings(action="ignore",
                                message="unclosed",
                                category=ResourceWarning)

        if os.name == 'posix':
            localProjectDir = '/storage/emulated/0/Android/data/ru.iiec.pydroid3/files/trans_file_cloud/test/testproject_2/projectdir'
            configFilePathName = '/storage/emulated/0/Android/data/ru.iiec.pydroid3/files/trans_file_cloud/test/test_TransferFiles.ini'
        else:
            localProjectDir = 'D:\\Development\\Python\\trans_file_cloud\\test\\testproject_2\\projectdir'
            configFilePathName = 'D:\\Development\\Python\\trans_file_cloud\\test\\test_TransferFiles.ini'

        # cleaning up the target cloud folder

        cm = ConfigManager(configFilePathName)
        projectName = 'TransferFilesTestProject'
        drpa = DropboxAccess(cm, projectName)

        cloudFileLst = drpa.getCloudFilePathNameList()

        for file in cloudFileLst:
            drpa.deleteFile(file)

        self.assertEqual([], drpa.getCloudFilePathNameList())

        # reading and rewriting test project files to update their modification date

        tstFileToUploadLst = ['testfilemover_2.py']
        pythonFileToUploadLst = ['filemover_2.py', 'filelister_2.py']
        docFileToUploadLst = ['doc_21.docx', 'doc_22.docx']
        imgFileToUploadLst = ['current_state_21.jpg']

        tstFilePathNameToUploadLst = [
            localProjectDir + sep + 'test' + sep + x
            for x in tstFileToUploadLst
        ]
        pythonFilePathNameToUploadLst = [
            localProjectDir + sep + x for x in pythonFileToUploadLst
        ]
        docFilePathNameToUploadLst = [
            localProjectDir + sep + 'doc' + sep + x for x in docFileToUploadLst
        ]
        imgFilePathNameToUploadLst = [
            localProjectDir + sep + 'images' + sep + x
            for x in imgFileToUploadLst
        ]

        filePathNameToUploadLst = tstFilePathNameToUploadLst + pythonFilePathNameToUploadLst + docFilePathNameToUploadLst + imgFilePathNameToUploadLst

        # simulating user input

        stdin = sys.stdin

        # selecting project 1 (the test project 'TransferFilesTestProject' is
        # the first project defined in test_TransferFiles.ini !)
        sys.stdin = StringIO('1')

        print('\nstdout temporarily captured. Test is running ...')

        stdout = sys.stdout
        outputCapturingString = StringIO()
        sys.stdout = outputCapturingString

        # now asking TransferFiles to upload the modified files

        tf = TransferFiles(configFilePath=configFilePathName)
        outputCapturingString = StringIO()
        sys.stdout = outputCapturingString
        tf.pathUploadToCloud(filePathNameToUploadLst)

        sys.stdin = stdin
        sys.stdout = stdout

        expectedUploadedFilePathNameLst = [
            'doc/doc_21.docx', 'doc/doc_22.docx', 'filelister_2.py',
            'filemover_2.py', 'images/current_state_21.jpg',
            'test/testfilemover_2.py'
        ]

        actualUploadedFilePathNameLst = drpa.getCloudFilePathNameList()
        self.assertEqual(sorted(expectedUploadedFilePathNameLst),
                         sorted(actualUploadedFilePathNameLst))

        if os.name == 'posix':
            self.assertTrue(
                'Uploading testproject_2/projectdir/test/testfilemover_2.py to the cloud ...'
                in outputCapturingString.getvalue())
        else:
            self.assertTrue(
                'Uploading testproject_2\projectdir\\test\\testfilemover_2.py to the cloud ...'
                in outputCapturingString.getvalue())