Ejemplo n.º 1
0
def test_long_format_list_with_null(capsys):
    args = MockArgs(project='f3szh', long_format=True)

    dates = ['null', 'null']
    njson = fake_responses._build_node('nodes')
    fjson = fake_responses.files_node('f3szh',
                                      'osfstorage',
                                      file_names=['hello.txt', 'bye.txt'],
                                      file_sizes=['null', 'null'],
                                      file_dates_modified=dates)
    sjson = fake_responses.storage_node('f3szh', ['osfstorage'])

    def simple_OSFCore_get(url):
        if url == 'https://api.osf.io/v2//nodes/f3szh/':
            return FakeResponse(200, njson)
        elif url == 'https://api.osf.io/v2/nodes/f3szh/files/':
            return FakeResponse(200, sjson)
        elif url == 'https://api.osf.io/v2/nodes/f3szh/files/osfstorage/':
            return FakeResponse(200, fjson)
        elif url == 'https://api.osf.io/v2//guids/f3szh/':
            return FakeResponse(200, {'data': {'type': 'nodes'}})
        else:
            print(url)
            raise ValueError()

    with patch('osfclient.cli.get_localzone',
               return_value=tz.tzutc()) as mock_get_localzone:
        with patch.object(OSFCore, '_get',
                          side_effect=simple_OSFCore_get) as mock_osf_get:
            list_(args)
    captured = capsys.readouterr()
    assert captured.err == ''
    expected = ['- - - osfstorage/bye.txt', '- - - osfstorage/hello.txt', '']
    assert captured.out.split('\n') == expected
Ejemplo n.º 2
0
def test_pass_down_session_to_storages(OSFCore_get):
    # as previous test but for multiple storages
    project = Project({})
    project._storages_url = 'https://api.osf.io/v2//nodes/f3szh/files/'

    store_json = fake_responses.storage_node('f3szh')
    response = FakeResponse(200, store_json)
    OSFCore_get.return_value = response

    for store in project.storages:
        assert store.session == project.session
Ejemplo n.º 3
0
def test_pass_down_session_to_storage(OSFCore_get):
    # check that `self.session` is passed to newly created OSFCore instances
    project = Project({})
    project._storages_url = 'https://api.osf.io/v2//nodes/f3szh/files/'

    store_json = fake_responses.storage_node('f3szh')
    response = FakeResponse(200, store_json)
    OSFCore_get.return_value = response

    store = project.storage()

    assert store.session == project.session
Ejemplo n.º 4
0
def test_valid_storage(OSFCore_get):
    project = Project({})
    project._storages_url = 'https://api.osf.io/v2//nodes/f3szh/files/'

    response = FakeResponse(200, fake_responses.storage_node('f3szh'))
    OSFCore_get.return_value = response

    storage = project.storage('osfstorage')

    OSFCore_get.assert_called_once_with(
        'https://api.osf.io/v2//nodes/f3szh/files/')
    assert isinstance(storage, Storage)
Ejemplo n.º 5
0
def test_invalid_storage(OSFCore_get):
    project = Project({})
    project._storages_url = 'https://api.osf.io/v2//nodes/f3szh/files/'

    response = FakeResponse(200, fake_responses.storage_node('f3szh'))
    OSFCore_get.return_value = response

    with pytest.raises(RuntimeError):
        project.storage('does-not-exist')

    OSFCore_get.assert_called_once_with(
        'https://api.osf.io/v2//nodes/f3szh/files/')
Ejemplo n.º 6
0
def test_iterate_storages(OSFCore_get):
    project = Project({})
    project._storages_url = 'https://api.osf.io/v2//nodes/f3szh/files/'

    store_json = fake_responses.storage_node('f3szh', ['osfstorage', 'github'])
    response = FakeResponse(200, store_json)
    OSFCore_get.return_value = response

    stores = list(project.storages)

    assert len(stores) == 2
    for store in stores:
        assert isinstance(store, Storage)

    OSFCore_get.assert_called_once_with(
        'https://api.osf.io/v2//nodes/f3szh/files/')
Ejemplo n.º 7
0
def test_list(capsys):
    args = MockArgs(project='f3szh')

    njson = fake_responses._build_node('nodes')
    rjson = fake_responses.files_node('f3szh',
                                      'osfstorage',
                                      file_names=['hello.txt', 'bye.txt'],
                                      folder_names=['folder1', 'folder2'])
    fjson1 = fake_responses.files_node(
        'f3szh', 'osfstorage', file_names=['folder1/folder1content.txt'])
    fjson2 = fake_responses.files_node(
        'f3szh', 'osfstorage', file_names=['folder2/folder2content.txt'])
    sjson = fake_responses.storage_node('f3szh', ['osfstorage'])

    def simple_OSFCore_get(url):
        if url == 'https://api.osf.io/v2//nodes/f3szh/':
            return FakeResponse(200, njson)
        elif url == 'https://api.osf.io/v2/nodes/f3szh/files/':
            return FakeResponse(200, sjson)
        elif url == 'https://api.osf.io/v2/nodes/f3szh/files/osfstorage/':
            return FakeResponse(200, rjson)
        elif url == 'https://api.osf.io/v2/nodes/9zpcy/files/osfstorage/folder1123/':
            return FakeResponse(200, fjson1)
        elif url == 'https://api.osf.io/v2/nodes/9zpcy/files/osfstorage/folder2123/':
            return FakeResponse(200, fjson2)
        elif url == 'https://api.osf.io/v2//guids/f3szh/':
            return FakeResponse(200, {'data': {'type': 'nodes'}})
        else:
            print(url)
            raise ValueError()

    with patch.object(OSFCore, '_get',
                      side_effect=simple_OSFCore_get) as mock_osf_get:
        list_(args)
    captured = capsys.readouterr()
    assert captured.err == ''
    assert captured.out.split('\n') == [
        'osfstorage/folder2/folder2content.txt',
        'osfstorage/folder1/folder1content.txt', 'osfstorage/bye.txt',
        'osfstorage/hello.txt', ''
    ]
Ejemplo n.º 8
0
def test_sublist_empty(capsys):
    args = MockArgs(project='f3szh', base_path='googledrive/')

    njson = fake_responses._build_node('nodes')
    sjson = fake_responses.storage_node('f3szh', ['osfstorage'])

    def simple_OSFCore_get(url):
        if url == 'https://api.osf.io/v2//nodes/f3szh/':
            return FakeResponse(200, njson)
        elif url == 'https://api.osf.io/v2/nodes/f3szh/files/':
            return FakeResponse(200, sjson)
        elif url == 'https://api.osf.io/v2//guids/f3szh/':
            return FakeResponse(200, {'data': {'type': 'nodes'}})
        else:
            print(url)
            raise ValueError()

    with patch.object(OSFCore, '_get',
                      side_effect=simple_OSFCore_get) as mock_osf_get:
        list_(args)
    captured = capsys.readouterr()
    assert captured.err == ''
    assert captured.out.split('\n') == ['']