Merge pull request #206 from thedataincubator/parse-newlines
Avoid replacing newlines with spaces early in the querypull/214/head
commit
86117c4b87
|
@ -43,16 +43,23 @@ def parse(cell, config):
|
|||
|
||||
result = {"connection": "", "sql": "", "result_var": None}
|
||||
|
||||
pieces = cell.split(None, 3)
|
||||
pieces = cell.split(None, 1)
|
||||
if not pieces:
|
||||
return result
|
||||
result["connection"] = _connection_string(pieces[0], config)
|
||||
if result["connection"]:
|
||||
pieces.pop(0)
|
||||
if len(pieces) == 1:
|
||||
return result
|
||||
cell = pieces[1]
|
||||
|
||||
pieces = cell.split(None, 2)
|
||||
if len(pieces) > 1 and pieces[1] == "<<":
|
||||
result["result_var"] = pieces.pop(0)
|
||||
pieces.pop(0) # discard << operator
|
||||
result["sql"] = (" ".join(pieces)).strip()
|
||||
result["result_var"] = pieces[0]
|
||||
if len(pieces) == 2:
|
||||
return result
|
||||
cell = pieces[2]
|
||||
|
||||
result["sql"] = cell
|
||||
return result
|
||||
|
||||
|
||||
|
|
|
@ -91,6 +91,22 @@ def test_parse_connect_plus_shovel():
|
|||
}
|
||||
|
||||
|
||||
def test_parse_early_newlines():
|
||||
assert parse("--comment\nSELECT *\n--comment\nFROM work", empty_config) == {
|
||||
"connection": "",
|
||||
"sql": "--comment\nSELECT *\n--comment\nFROM work",
|
||||
"result_var": None
|
||||
}
|
||||
|
||||
|
||||
def test_parse_connect_shovel_over_newlines():
|
||||
assert parse("\nsqlite://\ndest\n<<\nSELECT *\nFROM work", empty_config) == {
|
||||
"connection": "sqlite://",
|
||||
"sql": "SELECT *\nFROM work",
|
||||
"result_var": "dest"
|
||||
}
|
||||
|
||||
|
||||
class DummyConfig:
|
||||
dsn_filename = Path("src/tests/test_dsn_config.ini")
|
||||
|
||||
|
|
Loading…
Reference in New Issue