Exemple #1
0
def test_unique_folders_no_secure():
    session = MockSession()
    dataset_url = 'http://host/api/datasets/abc/'
    folders_url = 'http://host/api/datasets/abc/folders/'
    hidden_url = 'http://host/api/datasets/abc/folders/hidden/'
    trash_url = 'http://host/api/datasets/abc/folders/trash/'
    dataset_resource = Entity(session, **{
        "element": "shoji:entity",
        "self": dataset_url,
        "body": {
            "name": "test_dataset_project"
        },
        "catalogs": {
            "folders": folders_url,
        }
    })
    dataset_resource.variables = MagicMock()
    dataset_resource.settings = MagicMock()
    folders_resource = Catalog(session, **{
        "element": "shoji:catalog",
        "self": folders_url,
        "index": {},
        "body": {
            "name": "Root"
        },
        "catalogs": {
            "hidden": hidden_url,
            # Viewer users don't have the secure folder available
            # "secure": secure_url,
            "trash": trash_url,
        }
    })
    hidden_resource = Catalog(session, **{
        "element": "shoji:catalog",
        "self": hidden_url,
        "index": {},
        "body": {
            "name": "Hidden"
        },
    })
    trash_resource = Catalog(session, **{
        "element": "shoji:catalog",
        "self": trash_url,
        "index": {},
        "body": {
            "name": "Trash"
        },
    })
    session.add_fixture(folders_url, folders_resource)
    session.add_fixture(hidden_url, hidden_resource)
    session.add_fixture(trash_url, trash_resource)
    dataset = MutableDataset(dataset_resource)

    assert dataset.folders.root.name == "Root"
    assert dataset.folders.hidden.name == "Hidden"
    assert dataset.folders.trash.name == "Trash"
    assert not hasattr(dataset.folders, "secure")
Exemple #2
0
def test_unique_folders_no_hidden():
    session = MockSession()
    dataset_url = 'http://host/api/datasets/abc/'
    folders_url = 'http://host/api/datasets/abc/folders/'
    dataset_resource = Entity(session, **{
        "element": "shoji:entity",
        "self": dataset_url,
        "body": {
            "name": "test_dataset_project"
        },
        "catalogs": {
            "folders": folders_url,
        }
    })
    dataset_resource.variables = MagicMock()
    dataset_resource.settings = MagicMock()
    folders_resource = Catalog(session, **{
        "element": "shoji:catalog",
        "self": folders_url,
        "index": {},
        "body": {
            "name": "Root"
        },
        "catalogs": {
            # Standard exposed catalogs
            "personal": "./personal/",
            "parents": "./parents/",
            # Viewer users don't have the secure folder available
            # "secure": secure_url,
            # Viewers also don't get the hidden folder exposed
            # "hidden": hidden_url,
            # Nor the trash
            # "trash": trash_url,
        }
    })
    session.add_fixture(folders_url, folders_resource)
    dataset = MutableDataset(dataset_resource)

    assert dataset.folders.root.name == "Root"
    assert not hasattr(dataset.folders, "secure")
    assert not hasattr(dataset.folders, "hidden")
    assert not hasattr(dataset.folders, "trash")