mirror of
https://github.com/samschott/maestral.git
synced 2024-09-22 19:42:53 +03:00
[tests] expand client conversion tests
This commit is contained in:
parent
322f31056f
commit
45cbbc77b4
@ -1,8 +1,13 @@
|
||||
from dropbox import users, users_common, common, team_common
|
||||
import datetime
|
||||
|
||||
import pytest
|
||||
from dropbox import users, users_common, common, team_common, files, sharing
|
||||
from maestral.client import (
|
||||
convert_account,
|
||||
convert_full_account,
|
||||
convert_space_usage,
|
||||
convert_metadata,
|
||||
convert_shared_link_metadata,
|
||||
)
|
||||
from maestral import core
|
||||
|
||||
@ -77,6 +82,27 @@ def test_convert_full_account():
|
||||
root_namespace_id="root_id", home_namespace_id="home_id"
|
||||
)
|
||||
|
||||
dbx_account_info.account_type = users_common.AccountType.pro
|
||||
|
||||
account_info = convert_full_account(dbx_account_info)
|
||||
|
||||
assert account_info.account_type is core.AccountType.Pro
|
||||
assert account_info.root_info == core.UserRootInfo(
|
||||
root_namespace_id="root_id", home_namespace_id="home_id"
|
||||
)
|
||||
|
||||
dbx_account_info.account_type = users_common.AccountType.business
|
||||
dbx_account_info.root_info = common.TeamRootInfo(
|
||||
root_namespace_id="root_id", home_namespace_id="home_id", home_path="/home"
|
||||
)
|
||||
|
||||
account_info = convert_full_account(dbx_account_info)
|
||||
|
||||
assert account_info.account_type is core.AccountType.Business
|
||||
assert account_info.root_info == core.TeamRootInfo(
|
||||
root_namespace_id="root_id", home_namespace_id="home_id", home_path="/home"
|
||||
)
|
||||
|
||||
|
||||
def test_convert_space_usage_individual():
|
||||
dbx_space_usage = users.SpaceUsage(
|
||||
@ -132,3 +158,212 @@ def test_convert_space_usage_team():
|
||||
assert space_usage.used == 10
|
||||
assert space_usage.allocated == 15
|
||||
assert space_usage.team_usage == core.TeamSpaceUsage(20, 30)
|
||||
|
||||
|
||||
def test_convert_space_usage_other():
|
||||
dbx_space_usage = users.SpaceUsage(
|
||||
used=10,
|
||||
allocation=users.SpaceAllocation.other,
|
||||
)
|
||||
|
||||
space_usage = convert_space_usage(dbx_space_usage)
|
||||
|
||||
assert isinstance(space_usage, core.SpaceUsage)
|
||||
assert space_usage.used == 10
|
||||
assert space_usage.allocated == 0
|
||||
assert space_usage.team_usage is None
|
||||
|
||||
|
||||
def test_convert_metadata_file():
|
||||
|
||||
dbx_md = files.FileMetadata(
|
||||
name="Hello",
|
||||
path_lower="/folder/hello",
|
||||
path_display="/folder/Hello",
|
||||
id="id-0123456789",
|
||||
client_modified=datetime.datetime.fromtimestamp(10),
|
||||
server_modified=datetime.datetime.fromtimestamp(20),
|
||||
rev="abcdf12687980",
|
||||
size=658,
|
||||
symlink_info=files.SymlinkInfo(target="/symlink-target"),
|
||||
sharing_info=files.FileSharingInfo(
|
||||
read_only=False,
|
||||
parent_shared_folder_id="parent_shared_folder_id",
|
||||
modified_by="dbid-kjahdskjhkljkadsjhjhjmwerjhjhjmwero",
|
||||
),
|
||||
is_downloadable=True,
|
||||
content_hash="content_hash_hjkglidjsadfjhsdfgkasdhfgocapigkasdhfgociuyoweruqpi",
|
||||
)
|
||||
|
||||
md = convert_metadata(dbx_md)
|
||||
|
||||
assert isinstance(md, core.FileMetadata)
|
||||
assert md.name == "Hello"
|
||||
assert md.path_display == "/folder/Hello"
|
||||
assert md.path_lower == "/folder/hello"
|
||||
assert md.id == "id-0123456789"
|
||||
assert md.client_modified == datetime.datetime.fromtimestamp(10)
|
||||
assert md.server_modified == datetime.datetime.fromtimestamp(20)
|
||||
assert md.rev == "abcdf12687980"
|
||||
assert md.size == 658
|
||||
assert md.symlink_target == "/symlink-target"
|
||||
assert md.is_downloadable is True
|
||||
assert (
|
||||
md.content_hash
|
||||
== "content_hash_hjkglidjsadfjhsdfgkasdhfgocapigkasdhfgociuyoweruqpi"
|
||||
)
|
||||
assert md.is_downloadable is True
|
||||
assert md.shared is True
|
||||
|
||||
|
||||
def test_convert_metadata_folder():
|
||||
|
||||
dbx_md = files.FolderMetadata(
|
||||
name="Hello",
|
||||
path_lower="/folder/hello",
|
||||
path_display="/folder/Hello",
|
||||
id="id-0123456789",
|
||||
sharing_info=files.FolderSharingInfo(
|
||||
read_only=False,
|
||||
parent_shared_folder_id="parent_shared_folder_id",
|
||||
),
|
||||
)
|
||||
|
||||
md = convert_metadata(dbx_md)
|
||||
|
||||
assert isinstance(md, core.FolderMetadata)
|
||||
assert md.name == "Hello"
|
||||
assert md.path_display == "/folder/Hello"
|
||||
assert md.path_lower == "/folder/hello"
|
||||
assert md.id == "id-0123456789"
|
||||
assert md.shared is True
|
||||
|
||||
|
||||
def test_convert_metadata_deleted():
|
||||
|
||||
dbx_md = files.DeletedMetadata(
|
||||
name="Hello",
|
||||
path_lower="/folder/hello",
|
||||
path_display="/folder/Hello",
|
||||
)
|
||||
|
||||
md = convert_metadata(dbx_md)
|
||||
|
||||
assert isinstance(md, core.DeletedMetadata)
|
||||
assert md.name == "Hello"
|
||||
assert md.path_display == "/folder/Hello"
|
||||
assert md.path_lower == "/folder/hello"
|
||||
|
||||
|
||||
def test_convert_metadata_unsupported():
|
||||
|
||||
dbx_md = files.Metadata(
|
||||
name="Hello",
|
||||
path_lower="/folder/hello",
|
||||
path_display="/folder/Hello",
|
||||
)
|
||||
|
||||
with pytest.raises(RuntimeError):
|
||||
convert_metadata(dbx_md)
|
||||
|
||||
|
||||
def test_convert_sharedlink_metdata():
|
||||
|
||||
# Test conversion with effective_audience.
|
||||
|
||||
dbx_md = sharing.SharedLinkMetadata(
|
||||
url="/url",
|
||||
name="Hello",
|
||||
path_lower="/folder/hello",
|
||||
expires=datetime.datetime.fromtimestamp(10),
|
||||
link_permissions=sharing.LinkPermissions(
|
||||
can_revoke=False,
|
||||
effective_audience=sharing.LinkAudience.public,
|
||||
link_access_level=sharing.LinkAccessLevel.viewer,
|
||||
require_password=True,
|
||||
allow_download=True,
|
||||
),
|
||||
)
|
||||
|
||||
md = convert_shared_link_metadata(dbx_md)
|
||||
|
||||
assert isinstance(md, core.SharedLinkMetadata)
|
||||
assert md.url == "/url"
|
||||
assert md.name == "Hello"
|
||||
assert md.path_lower == "/folder/hello"
|
||||
assert md.expires == datetime.datetime.fromtimestamp(10)
|
||||
assert md.link_permissions.require_password is True
|
||||
assert md.link_permissions.can_revoke is False
|
||||
assert md.link_permissions.allow_download is True
|
||||
assert md.link_permissions.link_access_level is core.LinkAccessLevel.Viewer
|
||||
assert md.link_permissions.effective_audience is core.LinkAudience.Public
|
||||
|
||||
dbx_md.link_permissions.effective_audience = sharing.LinkAudience.team
|
||||
|
||||
md = convert_shared_link_metadata(dbx_md)
|
||||
|
||||
assert md.link_permissions.effective_audience is core.LinkAudience.Team
|
||||
|
||||
dbx_md.link_permissions.effective_audience = sharing.LinkAudience.no_one
|
||||
|
||||
md = convert_shared_link_metadata(dbx_md)
|
||||
|
||||
assert md.link_permissions.effective_audience is core.LinkAudience.NoOne
|
||||
|
||||
# Test conversion with resolved_visibility.
|
||||
|
||||
dbx_md = sharing.SharedLinkMetadata(
|
||||
url="/url",
|
||||
name="Hello",
|
||||
path_lower="/folder/hello",
|
||||
expires=datetime.datetime.fromtimestamp(10),
|
||||
link_permissions=sharing.LinkPermissions(
|
||||
can_revoke=False,
|
||||
resolved_visibility=sharing.ResolvedVisibility.public,
|
||||
link_access_level=sharing.LinkAccessLevel.editor,
|
||||
allow_download=True,
|
||||
),
|
||||
)
|
||||
|
||||
md = convert_shared_link_metadata(dbx_md)
|
||||
|
||||
assert isinstance(md, core.SharedLinkMetadata)
|
||||
assert md.url == "/url"
|
||||
assert md.name == "Hello"
|
||||
assert md.path_lower == "/folder/hello"
|
||||
assert md.expires == datetime.datetime.fromtimestamp(10)
|
||||
assert md.link_permissions.require_password is False
|
||||
assert md.link_permissions.can_revoke is False
|
||||
assert md.link_permissions.allow_download is True
|
||||
assert md.link_permissions.link_access_level is core.LinkAccessLevel.Editor
|
||||
assert md.link_permissions.effective_audience is core.LinkAudience.Public
|
||||
|
||||
dbx_md.link_permissions.resolved_visibility = sharing.ResolvedVisibility.team_only
|
||||
|
||||
md = convert_shared_link_metadata(dbx_md)
|
||||
|
||||
assert md.link_permissions.effective_audience is core.LinkAudience.Team
|
||||
assert md.link_permissions.require_password is False
|
||||
|
||||
dbx_md.link_permissions.resolved_visibility = (
|
||||
sharing.ResolvedVisibility.team_and_password
|
||||
)
|
||||
|
||||
md = convert_shared_link_metadata(dbx_md)
|
||||
|
||||
assert md.link_permissions.effective_audience is core.LinkAudience.Team
|
||||
assert md.link_permissions.require_password is True
|
||||
|
||||
dbx_md.link_permissions.resolved_visibility = sharing.ResolvedVisibility.password
|
||||
|
||||
md = convert_shared_link_metadata(dbx_md)
|
||||
|
||||
assert md.link_permissions.effective_audience is core.LinkAudience.Other
|
||||
assert md.link_permissions.require_password is True
|
||||
|
||||
dbx_md.link_permissions.resolved_visibility = sharing.ResolvedVisibility.no_one
|
||||
|
||||
md = convert_shared_link_metadata(dbx_md)
|
||||
|
||||
assert md.link_permissions.effective_audience is core.LinkAudience.NoOne
|
||||
assert md.link_permissions.require_password is False
|
||||
|
Loading…
Reference in New Issue
Block a user