youtubebeat/vendor/github.com/elastic/beats/libbeat/tests/system/test_cmd_keystore.py

145 lines
4 KiB
Python

from os import path
import os
import hashlib
from keystore import KeystoreBase
class TestCommandKeystore(KeystoreBase):
"""
Test keystore subcommand
"""
def setUp(self):
super(TestCommandKeystore, self).setUp()
self.keystore_path = self.working_dir + "/data/keystore"
self.render_config_template(keystore_path=self.keystore_path)
if path.exists(self.keystore_path):
os.Remove(self.keystore_path)
def test_keystore_create(self):
"""
test keystore create command
"""
exit_code = self.run_beat(extra_args=["keystore", "create"])
assert exit_code == 0
assert path.exists(self.keystore_path)
def test_keystore_create_force(self):
"""
Allow to override
"""
self.run_beat(extra_args=["keystore", "create"])
assert path.exists(self.keystore_path)
digest_before = hashlib.sha256(
open(self.keystore_path, 'rb').read()).digest()
exit_code = self.run_beat(extra_args=["keystore", "create", "--force"])
digest_after = hashlib.sha256(
open(self.keystore_path, 'rb').read()).digest()
assert exit_code == 0
assert digest_before != digest_after
def test_keystore_remove_no_key_no_keystore(self):
"""
Remove a key that doesn't exist when the keystore doesn't exist
"""
exit_code = self.run_beat(extra_args=["keystore", "remove", "mykey"])
assert exit_code == 1
assert "The filebeat keystore doesn't exist."
def test_keystore_remove_non_existing_key(self):
"""
Remove a key that doesn't exist in the keystore
"""
self.run_beat(extra_args=["keystore", "create"])
exit_code = self.run_beat(extra_args=["keystore", "remove", "mykey"])
assert exit_code == 1
def test_keystore_remove_existing_key(self):
"""
Remove an key present in the keystore
"""
self.run_beat(extra_args=["keystore", "create"])
self.add_secret("mykey")
exit_code = self.run_beat(extra_args=["keystore", "remove", "mykey"])
assert exit_code == 0
def test_keystore_remove_multiples_existing_keys(self):
"""
Remove an key present in the keystore
"""
self.run_beat(extra_args=["keystore", "create"])
self.add_secret("willnotdelete")
self.add_secret("myawesomekey")
self.add_secret("mysuperkey")
exit_code = self.run_beat(
extra_args=["keystore", "remove", "mysuperkey", "myawesomekey"])
assert exit_code == 0
exit_code = self.run_beat(extra_args=["keystore", "list"])
assert exit_code == 0
def test_keystore_list(self):
"""
list the available keys
"""
self.run_beat(extra_args=["keystore", "create"])
self.add_secret("willnotdelete")
self.add_secret("myawesomekey")
self.add_secret("mysuperkey")
exit_code = self.run_beat(extra_args=["keystore", "list"])
assert exit_code == 0
assert self.log_contains("willnotdelete")
assert self.log_contains("myawesomekey")
assert self.log_contains("mysuperkey")
def test_keystore_list_keys_on_an_empty_keystore(self):
"""
List keys on an empty keystore should not return anything
"""
exit_code = self.run_beat(extra_args=["keystore", "list"])
assert exit_code == 0
def test_keystore_add_secret_from_stdin(self):
"""
Add a secret to the store using stdin
"""
self.run_beat(extra_args=["keystore", "create"])
exit_code = self.add_secret("willnotdelete")
assert exit_code == 0
def test_keystore_update_force(self):
"""
Update an existing key using the --force flag
"""
self.run_beat(extra_args=["keystore", "create"])
self.add_secret("superkey")
exit_code = self.add_secret("mysuperkey", "hello", True)
assert exit_code == 0