From 029654b9a8c39f8dfc966f31c36f27cab84c6bc9 Mon Sep 17 00:00:00 2001
From: Dean Troyer <dtroyer@gmail.com>
Date: Fri, 18 Mar 2016 09:30:03 -0500
Subject: [PATCH] Add fixed keypair create functional test

This adds a test case to exercise the --public-key option of
the 'keypair create' command.  It is a follow-on to
I7a299a542d9df543bff43d3ea1e7907fc8c5f640 that fixed a key file
read bug.

Change-Id: Id78c1c7ece02f619aca69dc397185fc426b92306
---
 functional/tests/compute/v2/test_keypair.py | 26 +++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/functional/tests/compute/v2/test_keypair.py b/functional/tests/compute/v2/test_keypair.py
index 1c6e1b1685..c9e8f3bcf5 100644
--- a/functional/tests/compute/v2/test_keypair.py
+++ b/functional/tests/compute/v2/test_keypair.py
@@ -10,11 +10,22 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import os
 import uuid
 
 from functional.common import test
 
 
+PUBLIC_KEY = (
+    'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWNGczJxNaFUrJJVhta4dWsZY6bU'
+    '5HUMPbyfSMu713ca3mYtG848W4dfDCB98KmSQx2Bl0D6Q2nrOszOXEQWAXNdfMadnW'
+    'c4mNwhZcPBVohIFoC1KZJC8kcBTvFZcoz3mdIijxJtywZNpGNh34VRJlZeHyYjg8/D'
+    'esHzdoBVd5c/4R36emQSIV9ukY6PHeZ3scAH4B3K9PxItJBwiFtouSRphQG0bJgOv/'
+    'gjAjMElAvg5oku98cb4QiHZ8T8WY68id804raHR6pJxpVVJN4TYJmlUs+NOVM+pPKb'
+    'KJttqrIBTkawGK9pLHNfn7z6v1syvUo/4enc1l0Q/Qn2kWiz67 fake@openstack'
+)
+
+
 class KeypairTests(test.TestCase):
     """Functional tests for compute keypairs. """
     NAME = uuid.uuid4().hex
@@ -32,6 +43,21 @@ class KeypairTests(test.TestCase):
         raw_output = cls.openstack('keypair delete ' + cls.NAME)
         cls.assertOutput('', raw_output)
 
+    def test_keypair_create(self):
+        TMP_FILE = uuid.uuid4().hex
+        self.addCleanup(os.remove, TMP_FILE)
+        with open(TMP_FILE, 'w') as f:
+            f.write(PUBLIC_KEY)
+
+        raw_output = self.openstack(
+            'keypair create --public-key ' + TMP_FILE + ' tmpkey',
+        )
+        self.addCleanup(
+            self.openstack,
+            'keypair delete tmpkey',
+        )
+        self.assertIn('tmpkey', raw_output)
+
     def test_keypair_list(self):
         opts = self.get_list_opts(self.HEADERS)
         raw_output = self.openstack('keypair list' + opts)