def test_run_export_no_data():
    with tempdatasetdir() as dsa:
        dsa.write_config({'cmd': 'echo hi && (echo muahaha >&2)'})
        with pytest.raises(Exception):
            dsa._run_export(dataset.new_parcel_id())
        assert sum(1 for x in dsa.data_path.glob('*')) == 0
        assert sum(1 for x in dsa.incomplete_path.glob('*')) == 0
        assert next(dsa.log_path.glob('*.out')).read_text() == 'hi\n'
        assert next(dsa.log_path.glob('*.err')).read_text() == 'muahaha\n'
def test_ingest_path():
    with tempdatasetdir() as dsa:
        path = dsa.path.joinpath('foo.txt')
        path.write_text('hello')
        parcel_id = dataset.new_parcel_id()
        dsa.ingest_path(path, parcel_id)
        assert sum(1 for x in dsa.incomplete_path.glob('*')) == 0
        assert (
            dsa.data_path.joinpath(f'{parcel_id}.txt').read_text() == 'hello')
        assert dsa.read_metrics()[parcel_id]['success'] == 'Y'
def test_run_export():
    with tempdatasetdir() as dsa:
        dsa.write_config({'cmd': 'echo hi > $PARCEL_PATH.txt'})
        parcel_id = dataset.new_parcel_id()
        dsa._run_export(parcel_id)
        assert sum(1 for x in dsa.incomplete_path.glob('*')) == 0
        assert (
            dsa.data_path.joinpath(f'{parcel_id}.txt').read_text() == 'hi\n')
        assert dsa.log_path.joinpath(f'{parcel_id}.out').read_text() == ''
        assert dsa.log_path.joinpath(f'{parcel_id}.err').read_text() == ''
def test_ingest_path_git():
    with tempdatasetdir(git=True) as dsa:
        path = dsa.path.joinpath('foo.txt')
        path.write_text('hello')
        parcel_id = dataset.new_parcel_id()
        dsa.ingest_path(path, parcel_id)
        assert sum(1 for x in dsa.incomplete_path.glob('*')) == 0
        assert (
            dsa.data_path.joinpath(f'{parcel_id}.txt').read_text() == 'hello')
        assert dsa.read_metrics()[parcel_id]['success'] == 'Y'
        repo = Repo(dsa.path)
        assert ([b.name for b in repo.head.commit.tree['data']
                 ] == [f'{parcel_id}.txt'])
def test_ingest_path_bad_path():
    with tempdatasetdir() as dsa:
        path = dsa.path.joinpath('foo.txt')
        with pytest.raises(FileNotFoundError):
            dsa.ingest_path(path, dataset.new_parcel_id())
def test_run_export_no_cmd():
    with tempdatasetdir() as dsa:
        dsa._run_export(dataset.new_parcel_id())
        assert sum(1 for x in dsa.data_path.glob('*')) == 0
        assert sum(1 for x in dsa.incomplete_path.glob('*')) == 0