Пример #1
0
def test_read_csv_from_file_arg0(tmpdir):
    fs, filename, services = csv_tester.get_services_for_reader(tmpdir)

    with CapturingNodeExecutionContext(
            CsvReader(path=filename,
                      delimiter=',',
                      ioformat=settings.IOFORMAT_ARG0),
            services=services,
    ) as context:
        context.write(BEGIN, Bag(), END)
        context.step()

    assert len(context.send.mock_calls) == 2

    args0, kwargs0 = context.send.call_args_list[0]
    assert len(args0) == 1 and not len(kwargs0)
    args1, kwargs1 = context.send.call_args_list[1]
    assert len(args1) == 1 and not len(kwargs1)

    assert args0[0].args[0] == {
        'a': 'a foo',
        'b': 'b foo',
        'c': 'c foo',
    }
    assert args1[0].args[0] == {
        'a': 'a bar',
        'b': 'b bar',
        'c': 'c bar',
    }
Пример #2
0
def test_read_csv_from_file_kwargs(tmpdir):
    fs, filename, services = csv_tester.get_services_for_reader(tmpdir)

    with CapturingNodeExecutionContext(
            CsvReader(path=filename, delimiter=','),
            services=services,
    ) as context:
        context.write(BEGIN, Bag(), END)
        context.step()

    assert len(context.send.mock_calls) == 2

    args0, kwargs0 = context.send.call_args_list[0]
    assert len(args0) == 1 and not len(kwargs0)
    args1, kwargs1 = context.send.call_args_list[1]
    assert len(args1) == 1 and not len(kwargs1)

    _args, _kwargs = args0[0].get()
    assert not len(_args) and _kwargs == {
        'a': 'a foo',
        'b': 'b foo',
        'c': 'c foo',
    }

    _args, _kwargs = args1[0].get()
    assert not len(_args) and _kwargs == {
        'a': 'a bar',
        'b': 'b bar',
        'c': 'c bar',
    }
Пример #3
0
def test_read_csv_from_file(tmpdir):
    fs, filename = open_fs(tmpdir), 'input.csv'
    fs.open(filename, 'w').write('a,b,c\na foo,b foo,c foo\na bar,b bar,c bar')

    reader = CsvReader(path=filename, delimiter=',')

    context = CapturingNodeExecutionContext(reader, services={'fs': fs})

    context.start()
    context.write(BEGIN, Bag(), END)
    context.step()
    context.stop()

    assert len(context.send.mock_calls) == 2

    args0, kwargs0 = context.send.call_args_list[0]
    assert len(args0) == 1 and not len(kwargs0)
    args1, kwargs1 = context.send.call_args_list[1]
    assert len(args1) == 1 and not len(kwargs1)

    assert args0[0].args[0] == {
        'a': 'a foo',
        'b': 'b foo',
        'c': 'c foo',
    }
    assert args1[0].args[0] == {
        'a': 'a bar',
        'b': 'b bar',
        'c': 'c bar',
    }
Пример #4
0
def test_read_csv_from_file(tmpdir):
    file = tmpdir.join('input.csv')
    file.write('a,b,c\na foo,b foo,c foo\na bar,b bar,c bar')

    reader = CsvReader(path=str(file), delimiter=',')

    context = CapturingNodeExecutionContext(reader, None)

    context.start()
    context.recv(BEGIN, Bag(), END)
    context.step()
    context.stop()

    assert len(context.send.mock_calls) == 2

    args0, kwargs0 = context.send.call_args_list[0]
    assert len(args0) == 1 and not len(kwargs0)
    args1, kwargs1 = context.send.call_args_list[1]
    assert len(args1) == 1 and not len(kwargs1)

    assert args0[0].args[0] == {
        'a': 'a foo',
        'b': 'b foo',
        'c': 'c foo',
    }
    assert args1[0].args[0] == {
        'a': 'a bar',
        'b': 'b bar',
        'c': 'c bar',
    }
Пример #5
0
def test_read_csv_from_file_kwargs(tmpdir):
    fs, filename, services = csv_tester.get_services_for_reader(tmpdir)

    with BufferingNodeExecutionContext(CsvReader(filename, **defaults),
                                       services=services) as context:
        context.write_sync(EMPTY)

    assert context.get_buffer_args_as_dicts() == [{
        'a': 'a foo',
        'b': 'b foo',
        'c': 'c foo',
    }, {
        'a': 'a bar',
        'b': 'b bar',
        'c': 'c bar',
    }]
Пример #6
0
def test_read_csv_from_file_kwargs(tmpdir):
    fs, filename, services = csv_tester.get_services_for_reader(tmpdir)

    with BufferingNodeExecutionContext(CsvReader(filename, **defaults),
                                       services=services) as context:
        context.write_sync(EMPTY)

    assert context.get_buffer_args_as_dicts() == [
        {
            "a": "a foo",
            "b": "b foo",
            "c": "c foo"
        },
        {
            "a": "a bar",
            "b": "b bar",
            "c": "c bar"
        },
    ]
Пример #7
0
from bonobo import CsvReader, Graph, get_examples_path

graph = Graph(
    CsvReader(path=get_examples_path('datasets/coffeeshops.txt')),
    print,
)

if __name__ == '__main__':
    import bonobo

    bonobo.run(graph)