diff options
author | ERYoung11 <78834571+ERYoung11@users.noreply.github.com> | 2022-08-31 21:39:24 -0500 |
---|---|---|
committer | ERYoung11 <78834571+ERYoung11@users.noreply.github.com> | 2022-08-31 21:41:11 -0500 |
commit | f7b1621e34dc890db4b6948d2373113dbaef659f (patch) | |
tree | 2ec4eaf5d890c3047e6b9fed15992be18a587136 /tests | |
parent | 0f21f86838be36da53ec01ef4d2067aa5fdcb840 (diff) |
fixed comments with special see Issue #1362
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_pgexecute.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/test_pgexecute.py b/tests/test_pgexecute.py index 7fef4658..05313c72 100644 --- a/tests/test_pgexecute.py +++ b/tests/test_pgexecute.py @@ -2,6 +2,7 @@ from textwrap import dedent import psycopg import pytest +import re from unittest.mock import patch, MagicMock from pgspecial.main import PGSpecial, NO_QUERY from utils import run, dbtest, requires_json, requires_jsonb @@ -281,6 +282,73 @@ def test_execute_from_file_io_error(os, executor, pgspecial): assert success == False assert is_special == True +@dbtest +def test_execute_from_commented_file_that_executes_another_file(executor, pgspecial, tmpdir): + # https://github.com/dbcli/pgcli/issues/1336 + sqlfile1 = tmpdir.join("test01.sql") + sqlfile1.write("-- asdf \n\\h") + sqlfile2 = tmpdir.join("test00.sql") + sqlfile2.write("--An useless comment;\nselect now();\n-- another useless comment") + + rcfile = str(tmpdir.join("rcfile")) + print(rcfile) + cli = PGCli(pgexecute=executor, pgclirc_file=rcfile) + assert cli != None + statement = "--comment\n\\h" + result = run(executor, statement, pgspecial=cli.pgspecial) + assert result != None + assert result[0].find("ALTER TABLE") + +@dbtest +def test_execute_commented_first_line_and_special(executor, pgspecial, tmpdir): + # https://github.com/dbcli/pgcli/issues/1336 + + # just some base caes that should work also + statement = "--comment\nselect now();" + result = run(executor, statement, pgspecial=pgspecial) + assert result != None + assert result[1].find("now") >= 0 + + statement = "/*comment*/\nselect now();" + result = run(executor, statement, pgspecial=pgspecial) + assert result != None + assert result[1].find("now") >= 0 + + statement = "/*comment\ncomment line2*/\nselect now();" + result = run(executor, statement, pgspecial=pgspecial) + assert result != None + assert result[1].find("now") >= 0 + + statement = "--comment\n\\h" + result = run(executor, statement, pgspecial=pgspecial) + assert result != None + assert result[1].find("ALTER") >= 0 + assert result[1].find("ABORT") >= 0 + + statement = "/*comment*/\n\h;" + result = run(executor, statement, pgspecial=pgspecial) + assert result != None + assert result[1].find("ALTER") >= 0 + assert result[1].find("ABORT") >= 0 + + statement = " /*comment*/\n\h;" + result = run(executor, statement, pgspecial=pgspecial) + assert result != None + assert result[1].find("ALTER") >= 0 + assert result[1].find("ABORT") >= 0 + + statement = "/*comment\ncomment line2*/\n\h;" + result = run(executor, statement, pgspecial=pgspecial) + assert result != None + assert result[1].find("ALTER") >= 0 + assert result[1].find("ABORT") >= 0 + + statement = " /*comment\ncomment line2*/\n\h;" + result = run(executor, statement, pgspecial=pgspecial) + assert result != None + assert result[1].find("ALTER") >= 0 + assert result[1].find("ABORT") >= 0 + @dbtest def test_multiple_queries_same_line(executor): |