def _q_index(request): errors = [] key_lines = '' user = request.user sshkeys = user.sshkeys if request.method == "POST": key_lines = request.get_form_var('ssh') newsshkeys = [] errorkeys = [] for index, line in enumerate(key_lines.splitlines()): valid = SSHKey.validate(user.name, line) if not valid: errorkeys.append((index, line)) continue duplicated = SSHKey.is_duplicated(user.name, line) if duplicated: errorkeys.append((index, line)) continue newsshkeys.append(line) if not errorkeys: for key in newsshkeys: SSHKey.add(user.name, key) return request.redirect('/settings/ssh') error_prefix = 'Please check your SSH Key, Line: ' for no, key in errorkeys: error = error_prefix + '%s ' % no errors.append(error) return st('/settings/ssh.html', **locals())
def test_duplicate(self): SSHKey.add('test', KEY1) r = SSHKey.is_duplicated('test', KEY1) assert r is True r = SSHKey.is_duplicated('test', KEY5) assert r is None