Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

STAR-801: Changes from DSEDB - DO NOT MERGE #27

Draft
wants to merge 16 commits into
base: STAR-99
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
STAR-431: Add option to prevent any file-I/O from cqlsh
Co-authored-by: Robert Stupp <snazy@snazy.de>
(cherry picked from commit 33e486a)
mfleming authored and jacek-lewandowski committed Jun 25, 2021
commit ed5c21aa6b4a622ead2f1ba71927aa1c08f3a8ea
28 changes: 28 additions & 0 deletions cqlsh_tests/test_cqlsh.py
Original file line number Diff line number Diff line change
@@ -23,6 +23,7 @@
from cassandra.concurrent import execute_concurrent_with_args
from cassandra.query import BatchStatement, BatchType
from ccmlib import common
from ccmlib.node import ToolError

from .cqlsh_tools import monkeypatch_driver, unmonkeypatch_driver
from dtest import Tester, create_ks, create_cf
@@ -2456,6 +2457,33 @@ def test_cjk_output(self):
"""
assert stdout_lines_sorted.find(expected) >= 0

@since('4.0')
def test_no_file_io(self):
def run_cqlsh_catch_toolerror(cmd, env):
"""
run_cqlsh will throw ToolError if cqlsh exits with a non-zero exit code.
"""
try:
out, err, _ = self.node1.run_cqlsh(cmd, env)
except ToolError as e:
return e.stdout, e.stderr

cqlsh_stdout, cqlsh_stderr, = run_cqlsh_catch_toolerror('COPY foo.bar FROM \'blah\';', ['--no-file-io'])
assert cqlsh_stdout == ''
assert 'No file I/O permitted' in cqlsh_stderr

cqlsh_stdout, cqlsh_stderr = run_cqlsh_catch_toolerror('DEBUG', ['--no-file-io'])
assert cqlsh_stdout == ''
assert 'No file I/O permitted' in cqlsh_stderr

cqlsh_stdout, cqlsh_stderr = run_cqlsh_catch_toolerror('CAPTURE \'nah\'', ['--no-file-io'])
assert cqlsh_stdout == ''
assert 'No file I/O permitted' in cqlsh_stderr

cqlsh_stdout, cqlsh_stderr = run_cqlsh_catch_toolerror('SOURCE \'nah\'', ['--no-file-io'])
assert cqlsh_stdout == ''
assert 'No file I/O permitted' in cqlsh_stderr


class TestCqlLogin(Tester, CqlshMixin):
"""