Skip to content

Commit

Permalink
Merge pull request #74 from MichaelAquilina/ls_command_stdout
Browse files Browse the repository at this point in the history
Print ls command stdout
  • Loading branch information
MichaelAquilina committed Sep 28, 2017
2 parents b236b60 + c2f0369 commit 28a5715
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 16 deletions.
2 changes: 1 addition & 1 deletion s4/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ def ls_command(args, config, logger):
headers = ['key', 'local', 's3']
data = sorted(data, reverse=descending, key=lambda x: x[headers.index(sort_by)])

logger.info(tabulate(data, headers=headers))
print(tabulate(data, headers=headers))


def rm_command(args, config, logger):
Expand Down
55 changes: 40 additions & 15 deletions tests/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -523,31 +523,39 @@ def test_custom_target_name(self, get_input, logger, config_file):


class TestLsCommand(object):
def test_empty_config(self, logger):
def test_empty_config(self, capsys):
args = argparse.Namespace(target='idontexist')
logger = logging.getLogger('test_empty_config')
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler())
cli.ls_command(args, {}, logger)
expected_result = (
out, err = capsys.readouterr()
assert out == ''
assert err == (
'You have not added any targets yet\n'
'Use the "add" command to do this\n'
)
assert get_stream_value(logger) == expected_result

def test_missing_target(self, logger):
def test_missing_target(self, capsys):
args = argparse.Namespace(target='idontexist')
config = {
'targets': {
'foo': {},
'bar': {},
}
}
logger = logging.getLogger('test_missing_target')
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler())
cli.ls_command(args, config, logger)
expected_result = (
out, err = capsys.readouterr()
assert out == ""
assert err == (
'"idontexist" is an unknown target\n'
'Choices are: [\'bar\', \'foo\']\n'
)
assert get_stream_value(logger) == expected_result

def test_correct_output_empty(self, s3_client, local_client, logger):
def test_correct_output_empty(self, s3_client, local_client, capsys):
config = {
'targets': {
'foo': {
Expand All @@ -559,17 +567,22 @@ def test_correct_output_empty(self, s3_client, local_client, logger):
}
}
}
logger = logging.getLogger('test_correct_output_empty')
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler())

args = argparse.Namespace(target='foo', sort_by='key', descending=False)
cli.ls_command(args, config, logger)

expected_result = (
out, err = capsys.readouterr()

assert err == ""
assert out == (
'key local s3\n'
'----- ------- ----\n'
)
assert get_stream_value(logger) == expected_result

def test_correct_output_nonempty(self, s3_client, local_client, logger):
def test_correct_output_nonempty(self, s3_client, local_client, capsys):
config = {
'targets': {
'foo': {
Expand Down Expand Up @@ -607,6 +620,10 @@ def test_correct_output_nonempty(self, s3_client, local_client, logger):
}
})

logger = logging.getLogger('test_correct_output_nonempty')
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler())

args = argparse.Namespace(
target='foo',
sort_by='key',
Expand All @@ -615,17 +632,19 @@ def test_correct_output_nonempty(self, s3_client, local_client, logger):
)
cli.ls_command(args, config, logger)

expected_result = (
out, err = capsys.readouterr()

assert err == ""
assert out == (
'key local s3\n'
'----- ------------------- -------------------\n'
'honey 2016-11-10 18:40:00 2016-12-12 08:30:00\n'
'lemon 2017-02-02 08:30:00\n'
'milk 2016-12-12 08:30:00 1989-10-23 11:30:00\n'

)
assert get_stream_value(logger) == expected_result

def test_show_all(self, s3_client, local_client, logger):
def test_show_all(self, s3_client, local_client, capsys):
config = {
'targets': {
'foo': {
Expand Down Expand Up @@ -654,6 +673,10 @@ def test_show_all(self, s3_client, local_client, logger):
}
})

logger = logging.getLogger('test_show_all')
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler())

args = argparse.Namespace(
target='foo',
sort_by='key',
Expand All @@ -662,14 +685,16 @@ def test_show_all(self, s3_client, local_client, logger):
)
cli.ls_command(args, config, logger)

expected_result = (
out, err = capsys.readouterr()

assert err == ""
assert out == (
'key local s3\n'
'-------- ------------------- -------------------\n'
'cheese 2017-02-02 08:30:00 2017-12-12 08:30:00\n'
'crackers <deleted>\n'

)
assert get_stream_value(logger) == expected_result


class TestTargetsCommand(object):
Expand Down

0 comments on commit 28a5715

Please sign in to comment.