Exemplo n.º 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)
    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)
    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)
Exemplo n.º 4
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)
class MediaFireResourceLookupTests(unittest.TestCase):
    """Tests for get_resource_by_uri"""
    def setUp(self):
        # we can operate w/o login
        self.client = MediaFireClient(_api=DummyMediaFireApi)

    def test_resource_by_uri_root(self):
        """Test that get_resource_by_uri works on root"""
        result = self.client.get_resource_by_uri('mf:/')
        self.assertEqual(result["folderkey"], "blah")

    def test_folder_by_uri(self):
        """Test that multilevel folder is resolved"""
        result = self.client.get_resource_by_uri('mf:///a/b')
        self.assertEqual(result["folderkey"], "b" * 13)

    def test_intermediate_file_raises_error(self):
        """Test that a file in the middle throws NotAFolderError"""
        with self.assertRaises(NotAFolderError):
            self.client.get_resource_by_uri('mf:///hi.txt/b')

    def test_file_by_uri(self):
        """Test that multilevel file is resolved"""
        result = self.client.get_resource_by_uri('mf:///a/b/hi.txt')
        self.assertEqual(result["quickkey"], "i" * 15)

    def test_missing_folder_raises_error(self):
        """Test that folder is reported missing if it is"""
        with self.assertRaises(ResourceNotFoundError):
            self.client.get_resource_by_uri('mf:///a/b/c/hi.txt')

    def test_uri_key(self):
        """Test that key resolution works"""
        result = self.client.get_resource_by_uri('mf:' + 'a' * 13)
        self.assertEqual(result["folderkey"], "a" * 13)

    def test_trailing_slash(self):
        """Test that URI with trailing slash works"""
        result = self.client.get_resource_by_uri('mf:' + 'a' * 13 + '/')
        self.assertEqual(result["folderkey"], "a" * 13)
    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,
                    'name': 'e'
                })

        client = MediaFireClient()
        client.get_resource_by_uri = mock_get_resource_by_uri

        with self.assertRaises(NotAFolderError):
            client._prepare_upload_info(source, dest_uri)
Exemplo n.º 7
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)
    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,
                    'name': '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)
Exemplo n.º 9
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)
    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)
    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,
                    'name': '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)
Exemplo n.º 12
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)
Exemplo n.º 13
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)
    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)
Exemplo n.º 15
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)
    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)
Exemplo n.º 17
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)