import pytest from ucc.gshortcut import HBSGShortcutClient from ucc.database import ProtectedConnection from ucc.abstract import Permission from ucc import InvalidError from .test_gshortcut import PERMISSION_RWD, PERMISSION_R, check_file_node, \ check_node_is_none client: HBSGShortcutClient = None @pytest.fixture(scope='module', autouse=True) def set_globals(path_client, ucc_client): global client client = HBSGShortcutClient(ucc_client, ProtectedConnection(':memory:')) from .import test_gshortcut test_gshortcut.client = client def test_get_folder_node(): client._shortcut_map.put('1PLm3WAuHgnmZvPLTBZfl6HztA2WTHGJ2', '1VM1TpN59BiLVSi473XF6dxkW_rc7GRB8', True) # internal_folder_shortcut.gshortcut check_node(client.get_node('1OsnvIVWAmd8ZAsIKGKNwZZAk6u43Idzj')) # 1st_external_folder_shortcut (shortcut) check_node_is_none(client.get_node('1PLm3WAuHgnmZvPLTBZfl6HztA2WTHGJ2')) # 1st_external_folder_shortcut (target) check_node(client.get_node('1VM1TpN59BiLVSi473XF6dxkW_rc7GRB8')) # 2nd_external_folder_shortcut (shortcut) check_node(client.get_node('1pEg_hIMNZ7QGCyga7g9Qyw4DyzREkPsi')) # broken_folder_shortcut.gshortcut check_node(client.get_node('188vol-0nw6XcJhW5QIGodi9qLce-Zdum')) def test_list_children_folder(): client._shortcut_map.put('1PLm3WAuHgnmZvPLTBZfl6HztA2WTHGJ2', '1VM1TpN59BiLVSi473XF6dxkW_rc7GRB8', True) parent_id = '1EOqfCM9FMR8uPBB-5Krr_ru1TWD6Ys5Y' children = client.list_children(parent_id) nodes = dict() for node in children: nodes[node.name] = node assert parent_id == node.parent_id check_node(nodes['internal_folder_shortcut.gshortcut']) check_node(nodes['1st_external_folder_shortcut']) check_node(nodes['2nd_external_folder_shortcut.gshortcut']) check_node(nodes['broken_folder_shortcut.gshortcut']) def test_find_folder(): client._shortcut_map.put('1PLm3WAuHgnmZvPLTBZfl6HztA2WTHGJ2', '1VM1TpN59BiLVSi473XF6dxkW_rc7GRB8', True) parent_id = '1EOqfCM9FMR8uPBB-5Krr_ru1TWD6Ys5Y' check_node_is_none(client.find(parent_id, 'internal_folder_shortcut')) check_node(client.find(parent_id, '1st_external_folder_shortcut')) check_node_is_none(client.find(parent_id, '2nd_external_folder_shortcut')) check_node_is_none(client.find(parent_id, 'broken_folder_shortcut')) def test_find_gshortcut_folder(): parent_id = '1EOqfCM9FMR8uPBB-5Krr_ru1TWD6Ys5Y' check_node(client.find(parent_id, 'internal_folder_shortcut.gshortcut')) check_node(client.find(parent_id, '1st_external_folder_shortcut.gshortcut')) check_node(client.find(parent_id, '2nd_external_folder_shortcut.gshortcut')) check_node(client.find(parent_id, 'broken_folder_shortcut.gshortcut')) def check_node(node): assert node is not None # internal_folder_shortcut.gshortcut if node.id == '1OsnvIVWAmd8ZAsIKGKNwZZAk6u43Idzj': assert 'internal_folder_shortcut.gshortcut' == node.name assert False == node.is_dir assert True == node.is_shortcut assert PERMISSION_RWD == node.permission # 1st_external_folder_shortcut (shortcut) elif node.id == '1PLm3WAuHgnmZvPLTBZfl6HztA2WTHGJ2': assert '1st_external_folder_shortcut.gshortcut' == node.name assert False == node.is_dir assert True == node.is_shortcut assert PERMISSION_RWD == node.permission # 1st_external_folder_shortcut (target) elif node.id == '1VM1TpN59BiLVSi473XF6dxkW_rc7GRB8': assert '1st_external_folder_shortcut' == node.name assert True == node.is_dir assert False == node.is_shortcut assert PERMISSION_R == node.permission # 2nd_external_folder_shortcut.gshortcuts elif node.id == '1pEg_hIMNZ7QGCyga7g9Qyw4DyzREkPsi': assert '2nd_external_folder_shortcut.gshortcut' == node.name assert False == node.is_dir assert True == node.is_shortcut assert PERMISSION_RWD == node.permission # broken_folder_shortcut elif node.id == '188vol-0nw6XcJhW5QIGodi9qLce-Zdum': assert 'broken_folder_shortcut.gshortcut' == node.name assert False == node.is_dir assert True == node.is_shortcut assert PERMISSION_RWD == node.permission return else: check_file_node(node)