Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def tearDownClass(cls):
cli.do_command(cls.params, 'logout')
with mock.patch('builtins.input', side_effect = KeyboardInterrupt()), mock.patch('builtins.print'):
cli.do_command(params, 'add --login="user@keepersecurity.com" --pass=password --url="https://keepersecurity.com/" --custom="{\\"cmdr:plugin\\":\\"noop\\"}" "Record 1"')
cli.do_command(params, 'sync-down')
record_uid = next(iter(params.record_cache.keys()))
rec = api.get_record(params, record_uid)
self.assertEqual(rec.get('cmdr:plugin'), 'noop')
old_password = rec.password
cli.do_command(params, 'r -- {0}'.format(rec.record_uid))
cli.do_command(params, 'sync-down')
rec = api.get_record(params, record_uid)
self.assertNotEqual(old_password, rec.password)
cli.do_command(params, 'ls -l')
cli.do_command(params, 'mkdir --user-folder "User Folder 1"')
cli.do_command(params, 'mkdir --shared-folder --all "Shared Folder 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "User Folder 1"')
cli.do_command(params, 'mkdir --user-folder "User Folder 2"')
cli.do_command(params, 'cd /')
cli.do_command(params, 'ln "Record 1" "Shared Folder 1"')
cli.do_command(params, 'mv "Record 1" "User Folder 1"')
params.revision = 0
cli.do_command(params, 'sync-down')
self.assertEqual(len(params.record_cache), 1)
self.assertEqual(len(params.shared_folder_cache), 1)
cli.do_command(params, 'cd "Shared Folder 1"')
cli.do_command(params, 'append-notes --notes="Additional info" "Record 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "../User Folder 1"')
self.assertEqual(rec.get('cmdr:plugin'), 'noop')
old_password = rec.password
cli.do_command(params, 'r -- {0}'.format(rec.record_uid))
cli.do_command(params, 'sync-down')
rec = api.get_record(params, record_uid)
self.assertNotEqual(old_password, rec.password)
cli.do_command(params, 'ls -l')
cli.do_command(params, 'mkdir --user-folder "User Folder 1"')
cli.do_command(params, 'mkdir --shared-folder --all "Shared Folder 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "User Folder 1"')
cli.do_command(params, 'mkdir --user-folder "User Folder 2"')
cli.do_command(params, 'cd /')
cli.do_command(params, 'ln "Record 1" "Shared Folder 1"')
cli.do_command(params, 'mv "Record 1" "User Folder 1"')
params.revision = 0
cli.do_command(params, 'sync-down')
self.assertEqual(len(params.record_cache), 1)
self.assertEqual(len(params.shared_folder_cache), 1)
cli.do_command(params, 'cd "Shared Folder 1"')
cli.do_command(params, 'append-notes --notes="Additional info" "Record 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "../User Folder 1"')
cli.do_command(params, 'rmdir --force "User Folder 2"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd /')
cli.do_command(params, 'search record')
cli.do_command(params, 'search folder')
def test_commands(self):
params = TestEnterpriseCommands.params # type: KeeperParams
self.assertIsNotNone(params.enterprise)
test_user = params.config['user']
new_user = 'integration.user@keepersecurity.com'
new_team = 'Test Team'
with mock.patch('builtins.input', side_effect = KeyboardInterrupt()), mock.patch('builtins.print'):
cli.do_command(params, 'enterprise-info --verbose')
cli.do_command(params, 'enterprise-team --add "{0}"'.format(new_team))
cli.do_command(params, 'enterprise-team --restrict-edit=on --restrict-share=on --restrict-view=off "{0}"'.format(new_team))
cli.do_command(params, 'enterprise-user --add --name="Test User" {0}'.format(new_user))
cli.do_command(params, 'enterprise-user --lock "{0}"'.format(test_user))
cli.do_command(params, 'enterprise-user --unlock "{0}"'.format(test_user))
cli.do_command(params, 'enterprise-team --add-user="{0}" "{1}"'.format(test_user, new_team))
cli.do_command(params, 'enterprise-team --remove-user="{0}" "{1}"'.format(test_user, new_team))
cli.do_command(params, 'enterprise-user --add-team="{0}" "{1}"'.format(new_team, test_user))
cli.do_command(params, 'enterprise-user --remove-team="{0}" "{1}"'.format(new_team, test_user))
role_id = None
managed_roles = set()
for mn in params.enterprise['managed_nodes']:
cli.do_command(params, 'ln "Record 1" "Shared Folder 1"')
cli.do_command(params, 'mv "Record 1" "User Folder 1"')
params.revision = 0
cli.do_command(params, 'sync-down')
self.assertEqual(len(params.record_cache), 1)
self.assertEqual(len(params.shared_folder_cache), 1)
cli.do_command(params, 'cd "Shared Folder 1"')
cli.do_command(params, 'append-notes --notes="Additional info" "Record 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "../User Folder 1"')
cli.do_command(params, 'rmdir --force "User Folder 2"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd /')
cli.do_command(params, 'search record')
cli.do_command(params, 'search folder')
with tempfile.NamedTemporaryFile() as f:
f.write(b'data')
f.flush()
cli.do_command(params, 'cd "User Folder 1"')
cli.do_command(params, 'upload-attachment --file="{0}" "Record 1"'.format(f.name))
cli.do_command(params, 'sync-down')
with mock.patch('builtins.open', mock.mock_open()) as m_open, mock.patch('os.path.abspath', return_value='file/path'):
cli.do_command(params, 'download-attachment -- {0}'.format(record_uid))
m_open.assert_called()
m_open.return_value.write.assert_called()
script_path = os.path.dirname(__file__)
cwd = os.getcwd()
test_user = params.config['user']
new_user = 'integration.user@keepersecurity.com'
new_team = 'Test Team'
with mock.patch('builtins.input', side_effect = KeyboardInterrupt()), mock.patch('builtins.print'):
cli.do_command(params, 'enterprise-info --verbose')
cli.do_command(params, 'enterprise-team --add "{0}"'.format(new_team))
cli.do_command(params, 'enterprise-team --restrict-edit=on --restrict-share=on --restrict-view=off "{0}"'.format(new_team))
cli.do_command(params, 'enterprise-user --add --name="Test User" {0}'.format(new_user))
cli.do_command(params, 'enterprise-user --lock "{0}"'.format(test_user))
cli.do_command(params, 'enterprise-user --unlock "{0}"'.format(test_user))
cli.do_command(params, 'enterprise-team --add-user="{0}" "{1}"'.format(test_user, new_team))
cli.do_command(params, 'enterprise-team --remove-user="{0}" "{1}"'.format(test_user, new_team))
cli.do_command(params, 'enterprise-user --add-team="{0}" "{1}"'.format(new_team, test_user))
cli.do_command(params, 'enterprise-user --remove-team="{0}" "{1}"'.format(new_team, test_user))
role_id = None
managed_roles = set()
for mn in params.enterprise['managed_nodes']:
managed_roles.add(mn['role_id'])
for role in params.enterprise['roles']:
if role['role_id'] not in managed_roles:
role_id = role['role_id']
break
if role_id:
cli.do_command(params, 'enterprise-role --add-user="{0}" "{1}"'.format(new_user, role_id))
record_uid = next(iter(params.record_cache.keys()))
rec = api.get_record(params, record_uid)
self.assertEqual(rec.get('cmdr:plugin'), 'noop')
old_password = rec.password
cli.do_command(params, 'r -- {0}'.format(rec.record_uid))
cli.do_command(params, 'sync-down')
rec = api.get_record(params, record_uid)
self.assertNotEqual(old_password, rec.password)
cli.do_command(params, 'ls -l')
cli.do_command(params, 'mkdir --user-folder "User Folder 1"')
cli.do_command(params, 'mkdir --shared-folder --all "Shared Folder 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "User Folder 1"')
cli.do_command(params, 'mkdir --user-folder "User Folder 2"')
cli.do_command(params, 'cd /')
cli.do_command(params, 'ln "Record 1" "Shared Folder 1"')
cli.do_command(params, 'mv "Record 1" "User Folder 1"')
params.revision = 0
cli.do_command(params, 'sync-down')
self.assertEqual(len(params.record_cache), 1)
self.assertEqual(len(params.shared_folder_cache), 1)
cli.do_command(params, 'cd "Shared Folder 1"')
cli.do_command(params, 'append-notes --notes="Additional info" "Record 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "../User Folder 1"')
cli.do_command(params, 'rmdir --force "User Folder 2"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'rmdir --force "User Folder 2"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd /')
cli.do_command(params, 'search record')
cli.do_command(params, 'search folder')
with tempfile.NamedTemporaryFile() as f:
f.write(b'data')
f.flush()
cli.do_command(params, 'cd "User Folder 1"')
cli.do_command(params, 'upload-attachment --file="{0}" "Record 1"'.format(f.name))
cli.do_command(params, 'sync-down')
with mock.patch('builtins.open', mock.mock_open()) as m_open, mock.patch('os.path.abspath', return_value='file/path'):
cli.do_command(params, 'download-attachment -- {0}'.format(record_uid))
m_open.assert_called()
m_open.return_value.write.assert_called()
script_path = os.path.dirname(__file__)
cwd = os.getcwd()
if script_path.startswith(cwd):
script_path = script_path[len(cwd):]
if script_path.startswith(os.sep):
script_path = script_path[1:]
file = 'keepass.kdbx'
if script_path:
file = os.path.join(script_path, file)
if os.path.isfile(file):
os.remove(file)
with mock.patch('getpass.getpass', return_value='password'):
self.assertEqual(rec.get('cmdr:plugin'), 'noop')
old_password = rec.password
cli.do_command(params, 'r -- {0}'.format(rec.record_uid))
cli.do_command(params, 'sync-down')
rec = api.get_record(params, record_uid)
self.assertNotEqual(old_password, rec.password)
cli.do_command(params, 'ls -l')
cli.do_command(params, 'mkdir --user-folder "User Folder 1"')
cli.do_command(params, 'mkdir --shared-folder --all "Shared Folder 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "User Folder 1"')
cli.do_command(params, 'mkdir --user-folder "User Folder 2"')
cli.do_command(params, 'cd /')
cli.do_command(params, 'ln "Record 1" "Shared Folder 1"')
cli.do_command(params, 'mv "Record 1" "User Folder 1"')
params.revision = 0
cli.do_command(params, 'sync-down')
self.assertEqual(len(params.record_cache), 1)
self.assertEqual(len(params.shared_folder_cache), 1)
cli.do_command(params, 'cd "Shared Folder 1"')
cli.do_command(params, 'append-notes --notes="Additional info" "Record 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "../User Folder 1"')
cli.do_command(params, 'rmdir --force "User Folder 2"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd /')
cli.do_command(params, 'search record')
cli.do_command(params, 'search folder')
params = TestConnectedCommands.params # type: KeeperParams
with mock.patch('builtins.input', side_effect = KeyboardInterrupt()), mock.patch('builtins.print'):
cli.do_command(params, 'add --login="user@keepersecurity.com" --pass=password --url="https://keepersecurity.com/" --custom="{\\"cmdr:plugin\\":\\"noop\\"}" "Record 1"')
cli.do_command(params, 'sync-down')
record_uid = next(iter(params.record_cache.keys()))
rec = api.get_record(params, record_uid)
self.assertEqual(rec.get('cmdr:plugin'), 'noop')
old_password = rec.password
cli.do_command(params, 'r -- {0}'.format(rec.record_uid))
cli.do_command(params, 'sync-down')
rec = api.get_record(params, record_uid)
self.assertNotEqual(old_password, rec.password)
cli.do_command(params, 'ls -l')
cli.do_command(params, 'mkdir --user-folder "User Folder 1"')
cli.do_command(params, 'mkdir --shared-folder --all "Shared Folder 1"')
cli.do_command(params, 'sync-down')
cli.do_command(params, 'cd "User Folder 1"')
cli.do_command(params, 'mkdir --user-folder "User Folder 2"')
cli.do_command(params, 'cd /')
cli.do_command(params, 'ln "Record 1" "Shared Folder 1"')
cli.do_command(params, 'mv "Record 1" "User Folder 1"')
params.revision = 0
cli.do_command(params, 'sync-down')
self.assertEqual(len(params.record_cache), 1)
self.assertEqual(len(params.shared_folder_cache), 1)
cli.do_command(params, 'cd "Shared Folder 1"')
cli.do_command(params, 'append-notes --notes="Additional info" "Record 1"')
cli.do_command(params, 'sync-down')