Skip to content

Commit

Permalink
Add tests for ssh key commands.
Browse files Browse the repository at this point in the history
  • Loading branch information
EvgeneOskin committed Feb 3, 2016
1 parent 79fafbf commit 09dfcfa
Show file tree
Hide file tree
Showing 8 changed files with 110 additions and 7 deletions.
1 change: 1 addition & 0 deletions serverauditor_sshconfig/handlers/connect.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
class ConnectCommand(SshCommandFormatterMixin, SshConfigMergerMixin,
GetRelationMixin, AbstractCommand):
"""Connect to specific host."""

get_strategy = RelatedGetStrategy

def get_parser(self, prog_name):
Expand Down
2 changes: 1 addition & 1 deletion serverauditor_sshconfig/handlers/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def take_action(self, parsed_args):
instance = self.get_relation(
parsed_args.entry_type, parsed_args.id_or_name
)
ssh_config = self.get_merged_ssh_confi(instance)
ssh_config = self.get_merged_ssh_config(instance)

return self.prepare_fields(ssh_config, instance)

Expand Down
1 change: 1 addition & 0 deletions serverauditor_sshconfig/handlers/ssh_identity.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ def serialize_args(self, args, instance=None):
return identity

def check_incompatible_args(self, args):
"""Raise an error when passed incompatible args."""
if args.identity_file and args.ssh_key:
raise InvalidArgumentException(
'You can not use ssh key and identity file together!'
Expand Down
8 changes: 8 additions & 0 deletions serverauditor_sshconfig/handlers/ssh_key.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,13 @@
from ..core.models.terminal import SshKey


# pylint: disable=too-few-public-methods
class SshKeyGeneratorMixin(object):
"""Mixin for create new ssh key from file."""

# pylint: disable=no-self-use
def generate_ssh_key_instance(self, path):
"""Generate ssh key from file."""
with open(path, 'r') as _file:
content = _file.read()
label = os.path.basename(path)
Expand Down Expand Up @@ -44,6 +49,9 @@ def serialize_args(self, args, instance=None):
"""Convert args to instance."""
if instance:
ssh_key = instance
if args.identity_file:
with open(args.identity_file, 'r') as _file:
ssh_key.private_key = _file.read()
else:
ssh_key = self.generate_ssh_key_instance(args.identity_file)

Expand Down
66 changes: 66 additions & 0 deletions tests/integration/key.bats
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/usr/bin/env bats

setup() {
rm ~/.serverauditor.storage || true
touch key
}

teardown() {
rm key
}

@test "key help by arg" {
run serverauditor key --help
[ "$status" -eq 0 ]
}

@test "key help command" {
run serverauditor help key
[ "$status" -eq 0 ]
}

@test "Add general key" {
run serverauditor key -L test -i key
[ "$status" -eq 0 ]
! [ -z $(cat ~/.serverauditor.storage) ]
}

@test "Add many keys" {
run serverauditor key -L test_1 -i key
run serverauditor key -L test_2 -i key
run serverauditor key -L test_3 -i key
[ "$status" -eq 0 ]
! [ -z $(cat ~/.serverauditor.storage) ]
}

@test "Update key" {
key=$(serverauditor key -L test -i key)
run serverauditor key -i key $key
[ "$status" -eq 0 ]
! [ -z $(cat ~/.serverauditor.storage) ]
}

@test "Update many keys" {
key1=$(serverauditor key -L test_1 -i key)
key2=$(serverauditor key -L test_2 -i key)
key3=$(serverauditor key -L test_3 -i key)
run serverauditor key -i key $key1 $key2 $key3
[ "$status" -eq 0 ]
! [ -z $(cat ~/.serverauditor.storage) ]
}

@test "Delete key" {
key=$(serverauditor key -L test_1 -i key)
run serverauditor key --delete $key
[ "$status" -eq 0 ]
! [ -z $(cat ~/.serverauditor.storage) ]
}

@test "Delete many keys" {
key1=$(serverauditor key -L test_1 -i key)
key2=$(serverauditor key -L test_2 -i key)
key3=$(serverauditor key -L test_3 -i key)
run serverauditor key --delete $key1 $key2 $key3
[ "$status" -eq 0 ]
! [ -z $(cat ~/.serverauditor.storage) ]
}
27 changes: 27 additions & 0 deletions tests/integration/keys.bats
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bats

setup() {
rm ~/.serverauditor.storage || true
touch key
}

teardown() {
rm key
}

@test "keys help by arg" {
run serverauditor keys --help
[ "$status" -eq 0 ]
}

@test "keys help command" {
run serverauditor help keys
[ "$status" -eq 0 ]
}

@test "List snippets in table format" {
serverauditor key -L test -i key
run serverauditor keys
[ "$status" -eq 0 ]
! [ -z $(cat ~/.serverauditor.storage) ]
}
4 changes: 2 additions & 2 deletions tests/integration/snippet.bats
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ setup() {
}

@test "Snippet help by arg" {
run serverauditor host --help
run serverauditor snippet --help
[ "$status" -eq 0 ]
}

@test "Snippet help command" {
run serverauditor help host
run serverauditor help snippet
[ "$status" -eq 0 ]
}

Expand Down
8 changes: 4 additions & 4 deletions tests/integration/snippets.bats
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ setup() {
rm ~/.serverauditor.storage || true
}

@test "hosts help by arg" {
run serverauditor hosts --help
@test "snippets help by arg" {
run serverauditor snippets --help
[ "$status" -eq 0 ]
}

@test "hosts help command" {
run serverauditor help hosts
@test "snippets help command" {
run serverauditor help snippets
[ "$status" -eq 0 ]
}

Expand Down

0 comments on commit 09dfcfa

Please sign in to comment.