def test_multiple_alternatives(): inp = {"c": 0} op = alternative(keep(["a"]), keep(["b"]), keep(["c"])) (res, err) = op(inp) assert res == {"c": 0} assert err is None
def test_empty(): inp = None op = alternative(keep(["a"]), keep(["b"])) (res, err) = op(inp) assert res is None assert err == {"b": "b not found"}
def test_some_value(): inp = {"field1": True} op = keep(["field1"]) (res, err) = op(inp) assert res == {"field1": True} assert err is None
def test_reader_csv_some_working(): operation = sequential(csv_to_map(["who"]), keep(fields=["who"])) (transformed_output, transformed_error) = operation('"anciano"\r\n') assert transformed_output is not None assert "who" in transformed_output assert transformed_output["who"] == "anciano" assert transformed_error is None
def test_multiple_fields(): inp = {"field1": True, "field2": True, "field3": True, "field4": True} op = keep(["field1", "field2", "field3"]) (res, err) = op(inp) assert err is None assert res == {"field1": True, "field2": True, "field3": True}
def test_empty(): inp = None op = keep(["field1"]) (res, err) = op(inp) assert res is None assert err == {'field1': 'field1 not found'}
def test_field_not_found(): inp = {"field1": True} op = keep(["missing"]) (res, err) = op(inp) assert res is None assert err == {'missing': 'missing not found'}
def test_writer_json_some_working(): operation = sequential(keep(fields=["who"]), to_json) (transformed_output, transformed_error) = operation({"who": "anciano"}) assert transformed_output is not None assert transformed_output == '{"who": "anciano"}' assert transformed_error is None
def etl(): return sequential( csv_to_map([ 'date', 'file', 'date2', 'log', 'app', 'beat', 'front', 'is_log', 'msg', 'offset', 'arch' ]), keep(["msg"]), append(['msg'], wrap(lambda x: dict(Counter(x.lower())))))
def test_one_alternative(): inp = {"a": 0} op = alternative(keep(["a"])) (res, err) = op(inp) assert res == {"a": 0} assert err is None
def test_reader_csv_custom_params(): the_csv = '"Nori";"Melon"' the_map = {"who": "Nori", "greet": "Melon"} operation = sequential(csv_to_map(["who", "greet"], delimiter=";"), keep(fields=["who", "greet"])) (transformed_output, transformed_error) = operation(the_csv) assert transformed_output == the_map assert transformed_error is None reverse_operation = map_to_csv(["who", "greet"], delimiter=";") (transformed_output, transformed_error) = reverse_operation(the_map) assert transformed_output == the_csv assert transformed_error is None
def test_writer_csv_multiples_lines(): lines_in = [{ "who": "Thorin" }, { "who": "Dwalin" }, { "who": "Balin" }, { "who": "Kíli" }, { "who": "Fíli" }, { "who": "Dori" }, { "who": "Nori" }, { "who": "Ori" }, { "who": "Óin" }, { "who": "Glóin" }, { "who": "Bifur" }, { "who": "Bofur" }, { "who": "Bombur" }] lines_out_expected = [ '"Thorin"', '"Dwalin"', '"Balin"', '"Kíli"', '"Fíli"', '"Dori"', '"Nori"', '"Ori"', '"Óin"', '"Glóin"', '"Bifur"', '"Bofur"', '"Bombur"' ] operation = sequential(keep(fields=["who"]), map_to_csv(["who"])) lines_out = [operation(x)[0] for x in lines_in] assert lines_out_expected == lines_out
def test_writer_csv_some_working(): operation = sequential(keep(fields=["who"]), map_to_csv(["who"])) (transformed_output, transformed_error) = operation({"who": "anciano"}) assert transformed_output is not None assert transformed_output == '"anciano"' assert transformed_error is None
def test_writer_csv_empty(): operation = sequential(keep(fields=["who"]), map_to_csv(["who"])) (transformed_output, transformed_error) = operation(None) assert transformed_output is None assert transformed_error == {'who': 'who not found'}
def etl(): return sequential( csv_to_map([ 'date', 'file', 'date2', 'log', 'app', 'beat', 'front', 'is_log', 'msg', 'offset', 'arch' ]), keep(["msg"]))
def test_reader_csv_empty(): operation = sequential(csv_to_map(["who"]), keep(fields=["who"])) (transformed_output, transformed_error) = operation(None) assert transformed_output is None assert transformed_error == {'who': 'no input'}
def test_reader_json_empty(): operation = sequential(from_json, keep(fields=["who"])) (transformed_output, transformed_error) = operation(None) assert transformed_output is None assert transformed_error == {'who': "Can't parse"}
def test_reader_json_some_working(): operation = sequential(from_json, keep(fields=["who"])) (transformed_output, transformed_error) = operation('{"who": "anciano"}') assert "who" in transformed_output assert transformed_output["who"] == "anciano" assert transformed_error is None