forked from 3wordchant/capsul-flask
		
	Add SSH key tests
This commit is contained in:
		| @ -12,6 +12,12 @@ class ConsoleTests(BaseTestCase): | ||||
|         "ssh_key_0": "key" | ||||
|     } | ||||
|  | ||||
|     ssh_key_data = { | ||||
|         "name": "key2", | ||||
|         "method": "POST", | ||||
|         "content": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDntq1t8Ddsa2q4p+PM7W4CLYYmxakokRRVLlf7AQlsTJFPsgBe9u0zuoOaKDMkBr0dlnuLm4Eub1Mj+BrdqAokto0YDiAnxUKRuYQKuHySKK8bLkisi2k47jGBDikx/jihgiuFTawo1mYsJJepC7PPwZGsoCImJEgq1L+ug0p3Zrj3QkUx4h25MpCSs2yvfgWjDyN8hEC76O42P+4ETezYrzrd1Kj26hdzHRnrxygvIUOtfau+5ydlaz8xQBEPrEY6/+pKDuwtXg1pBL7GmoUxBXVfHQSgq5s9jIJH+G0CR0ZoHMB25Ln4X/bsCQbLOu21+IGYKSDVM5TIMLtkKUkERQMVWvnpOp1LZKir4dC0m7SW74wpA8+2b1IsURIr9ARYGJpCEv1Q1Wz/X3yTf6Mfey7992MjUc9HcgjgU01/+kYomoXHprzolk+22Gjfgo3a4dRIoTY82GO8kkUKiaWHvDkkVURCY5dpteLA05sk3Z9aRMYsNXPLeOOPfzTlDA0=" | ||||
|     } | ||||
|  | ||||
|     def test_index(self): | ||||
|         self._login('test@example.com') | ||||
|         with self.client as client: | ||||
| @ -86,6 +92,59 @@ class ConsoleTests(BaseTestCase): | ||||
|                 url_for("console.index") + f'?{vm_id}' | ||||
|             ) | ||||
|  | ||||
|     def test_keys_loads(self): | ||||
|         self._login('test@example.com') | ||||
|         with self.client as client: | ||||
|             response = client.get(url_for("console.ssh_public_keys")) | ||||
|             self.assert_200(response) | ||||
|             keys = self.get_context_variable('ssh_public_keys') | ||||
|             self.assertEqual(keys[0]['name'], 'key') | ||||
|  | ||||
|     def test_keys_add_fails_invalid(self): | ||||
|         self._login('test@example.com') | ||||
|         with self.client as client: | ||||
|             client.get(url_for("console.ssh_public_keys")) | ||||
|             csrf_token = self.get_context_variable('csrf_token') | ||||
|  | ||||
|             data = self.ssh_key_data | ||||
|             data['csrf-token'] = csrf_token | ||||
|  | ||||
|             data_invalid_content = data | ||||
|             data_invalid_content['content'] = 'foo' | ||||
|             client.post( | ||||
|                 url_for("console.ssh_public_keys"), | ||||
|                 data=data_invalid_content | ||||
|             ) | ||||
|  | ||||
|             self.assert_message_flashed( | ||||
|                 'Content must match "^(ssh|ecdsa)-[0-9A-Za-z+/_=@:. -]+$"', | ||||
|                 category='message' | ||||
|             ) | ||||
|  | ||||
|             data_missing_content = data | ||||
|             data_missing_content['content'] = '' | ||||
|             client.post(url_for("console.ssh_public_keys"), data=data_missing_content) | ||||
|  | ||||
|             self.assert_message_flashed( | ||||
|                 'Content is required', category='message' | ||||
|             ) | ||||
|  | ||||
|     def test_keys_add_fails_duplicate(self): | ||||
|         self._login('test@example.com') | ||||
|         with self.client as client: | ||||
|             client.get(url_for("console.ssh_public_keys")) | ||||
|             csrf_token = self.get_context_variable('csrf_token') | ||||
|  | ||||
|             data = self.ssh_key_data | ||||
|             data['csrf-token'] = csrf_token | ||||
|             data['name'] = 'key' | ||||
|             client.post(url_for("console.ssh_public_keys"), data=data) | ||||
|  | ||||
|             self.assert_message_flashed( | ||||
|                 'A key with that name already exists', | ||||
|                 category='message' | ||||
|             ) | ||||
|  | ||||
|  | ||||
|     def setUp(self): | ||||
|         self._login('test@example.com') | ||||
|  | ||||
		Reference in New Issue
	
	Block a user