예제 #1
0
def test_it_creates_a_new_remote_project(mk_mock_kiproject_input, mk_tempdir,
                                         syn_test_helper):
    mk_mock_kiproject_input(create_remote_project_or_existing='c')
    kiproject = KiProject(mk_tempdir())

    syn_project = syn_test_helper.client().get(
        DataUri.parse(kiproject.project_uri).id)
    syn_test_helper.dispose_of(syn_project)
예제 #2
0
def test___init__(bad_uris):
    for scheme in DataUri.SCHEMES:
        id = '123456'
        uri = '{0}:{1}'.format(scheme, id).title()

        duri = DataUri.parse(uri)
        assert duri.scheme == scheme
        assert duri.id == id
        assert duri.uri == uri.lower()

        if scheme == 'syn':
            assert isinstance(duri.data_adapter(), SynapseAdapter)

    with pytest.raises(InvalidDataUriError) as ex:
        DataUri.parse(None)
    assert str(ex.value) == 'uri cannot be blank.'

    for bad_uri in bad_uris:
        with pytest.raises(InvalidDataUriError) as ex:
            DataUri.parse(bad_uri)
        assert ('Invalid URI format, cannot parse:' in str(ex.value)
                or str(ex.value) == 'uri cannot be blank.'
                or 'Invalid URI scheme:' in str(ex.value)
                or str(ex.value) == 'URI ID must be provided.')
예제 #3
0
def test_it_does_not_push_a_file_unless_the_local_file_changed(
        mk_kiproject, mk_syn_files, syn_client, mocker):
    kiproject = mk_kiproject()

    # Get the Synapse project for the KiProject
    syn_project = syn_client.get(DataUri.parse(kiproject.project_uri).id)

    syn_data_folder = syn_client.store(
        synapseclient.Folder(name='data', parent=syn_project))
    syn_core_folder = syn_client.store(
        synapseclient.Folder(name='core', parent=syn_data_folder))

    # Create a Synapse file to add/pull/push
    syn_file = mk_syn_files(syn_core_folder, file_num=1, versions=1,
                            suffix='')[0]

    syn_file_uri = DataUri('syn', syn_file.id).uri
    kiproject.data_add(syn_file_uri, data_type=kiproject.data_types[0])
    kiproject.data_pull()

    # The file exists in the Synapse project and has been pulled locally.
    # Pushing again should NOT upload the file again.
    mocker.spy(synapseclient.client, 'upload_file_handle')
    kiproject.data_push(syn_file_uri)
예제 #4
0
 def _sdo(kiproject):
     syn_project = syn_test_helper.client().get(
         DataUri.parse(kiproject.project_uri).id)
     syn_test_helper.dispose_of(syn_project)
     return syn_project