예제 #1
0
    def test_upload_target_parent_folder_does_not_exist(self):
        source = '/tmp/k.txt'
        dest_uri = 'mf:/c/k.txt'

        def mock_get_resource_by_uri(uri):
            if uri == dest_uri:
                raise ResourceNotFoundError(uri)
            elif uri == 'mf:/c':
                raise ResourceNotFoundError(uri)

        client = MediaFireClient()
        client.get_resource_by_uri = mock_get_resource_by_uri

        with self.assertRaises(ResourceNotFoundError):
            client._prepare_upload_info(source, dest_uri)
예제 #2
0
    def test_upload_fh_to_folder(self):
        source = io.BytesIO(b"blah")
        dest_uri = 'mf:/g/'

        def mock_get_resource_by_uri(uri):
            if uri == dest_uri:
                return Folder({
                    'folderkey': 'i' * 13,
                    'name': 'g'
                })

        client = MediaFireClient()
        client.get_resource_by_uri = mock_get_resource_by_uri

        with self.assertRaises(ValueError):
            client._prepare_upload_info(source, dest_uri)
예제 #3
0
    def test_upload_target_file_parent_folder_is_file(self):
        source = '/tmp/m.txt'
        dest_uri = 'mf:/e/m.txt'

        def mock_get_resource_by_uri(uri):
            if uri == dest_uri:
                raise ResourceNotFoundError(uri)
            elif uri == 'mf:/e':
                return File({
                    'quickkey': 'f' * 15,
                    'filename': 'e'
                })

        client = MediaFireClient()
        client.get_resource_by_uri = mock_get_resource_by_uri

        with self.assertRaises(NotAFolderError):
            client._prepare_upload_info(source, dest_uri)
예제 #4
0
    def test_upload_to_folder_target_name_is_folder(self):
        source = '/tmp/j.txt'
        dest_uri = 'mf:/b/'

        folder_key = 'd' * 13

        def mock_get_resource_by_uri(uri):
            if uri == dest_uri:
                return Folder({
                    'folderkey': folder_key,
                    'name': 'b'
                })
            elif uri == 'mf:/b/j.txt':
                return Folder({
                    'folderkey': 'e' * 13,
                    'name': 'j.txt'
                })

        client = MediaFireClient()
        client.get_resource_by_uri = mock_get_resource_by_uri

        with self.assertRaises(ValueError):
            client._prepare_upload_info(source, dest_uri)
예제 #5
0
    def test_existing_file_overwrite(self):
        source = "/tmp/f.txt"
        dest_uri = "mf:/a/f.txt"
        folder_key = 'a' * 13
        quick_key = 'b' * 15

        def mock_get_resource_by_uri(uri):
            if uri == dest_uri:
                return File({
                    'parent_folderkey': folder_key,
                    'quickkey': quick_key,
                    'filename': 'f.txt'
                })

        client = MediaFireClient()
        client.get_resource_by_uri = mock_get_resource_by_uri

        result_folder_key, result_name = client._prepare_upload_info(source,
                                                                     dest_uri)
        self.assertEqual(result_name, 'f.txt')
        self.assertEqual(result_folder_key, folder_key)
예제 #6
0
    def test_upload_to_folder(self):
        source = '/tmp/j.txt'
        dest_uri = 'mf:/b/'

        folder_key = 'c' * 13

        def mock_get_resource_by_uri(uri):
            if uri == dest_uri:
                return Folder({
                    'folderkey': folder_key,
                    'name': 'a'
                })
            elif uri == 'mf:/b/j.txt':
                raise ResourceNotFoundError()

        client = MediaFireClient()
        client.get_resource_by_uri = mock_get_resource_by_uri

        result_folder_key, result_name = client._prepare_upload_info(source,
                                                                     dest_uri)
        self.assertEqual(result_name, 'j.txt')
        self.assertEqual(result_folder_key, folder_key)
예제 #7
0
    def test_upload_fh_existing_overwrite(self):
        source = io.BytesIO(b"blah")
        dest_uri = 'mf:/f/m.txt'
        quick_key = 'j' * 15
        folder_key = 'h' * 13

        def mock_get_resource_by_uri(uri):
            if uri == dest_uri:
                return File({
                    'quickkey': quick_key,
                    'filename': 'm.txt',
                    'parent_folderkey': folder_key
                })

        client = MediaFireClient()
        client.get_resource_by_uri = mock_get_resource_by_uri

        result_folder_key, result_name = client._prepare_upload_info(source,
                                                                     dest_uri)

        self.assertEqual(result_name, 'm.txt')
        self.assertEqual(result_folder_key, folder_key)
예제 #8
0
    def test_upload_target_file_doest_not_exist(self):
        source = '/tmp/l.txt'
        dest_uri = 'mf:/d/l.txt'

        folder_key = 'e' * 13

        def mock_get_resource_by_uri(uri):
            if uri == dest_uri:
                raise ResourceNotFoundError(uri)
            elif uri == 'mf:/d':
                return Folder({
                    'folderkey': folder_key,
                    'name': 'd'
                })

        client = MediaFireClient()
        client.get_resource_by_uri = mock_get_resource_by_uri

        result_folder_key, result_name = client._prepare_upload_info(source,
                                                                     dest_uri)

        self.assertEqual(result_name, 'l.txt')
        self.assertEqual(result_folder_key, folder_key)