github.com/gophercloud/gophercloud@v1.11.0/openstack/compute/v2/extensions/keypairs/testing/fixtures_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  	"testing"
     7  
     8  	"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/keypairs"
     9  	th "github.com/gophercloud/gophercloud/testhelper"
    10  	"github.com/gophercloud/gophercloud/testhelper/client"
    11  )
    12  
    13  // ListOutput is a sample response to a List call.
    14  const ListOutput = `
    15  {
    16  	"keypairs": [
    17  		{
    18  			"keypair": {
    19  				"fingerprint": "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a",
    20  				"name": "firstkey",
    21  				"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n",
    22  				"user_id": "fake"
    23  			}
    24  		},
    25  		{
    26  			"keypair": {
    27  				"fingerprint": "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
    28  				"name": "secondkey",
    29  				"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
    30  				"user_id": "fake"
    31  			}
    32  		}
    33  	]
    34  }
    35  `
    36  
    37  // GetOutput is a sample response to a Get call.
    38  const GetOutput = `
    39  {
    40  	"keypair": {
    41  		"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n",
    42  		"name": "firstkey",
    43  		"fingerprint": "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a",
    44  		"user_id": "fake"
    45  	}
    46  }
    47  `
    48  
    49  // GetOutputOtherUser is a sample response to a Get call for another user.
    50  const GetOutputOtherUser = `
    51  {
    52  	"keypair": {
    53  		"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n",
    54  		"name": "firstkey",
    55  		"fingerprint": "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a",
    56  		"user_id": "fake2"
    57  	}
    58  }
    59  `
    60  
    61  // CreateOutput is a sample response to a Create call.
    62  const CreateOutput = `
    63  {
    64  	"keypair": {
    65  		"fingerprint": "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
    66  		"name": "createdkey",
    67  		"private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7\nDUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ\n9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5QIDAQAB\nAoGAE5XO1mDhORy9COvsg+kYPUhB1GsCYxh+v88wG7HeFDKBY6KUc/Kxo6yoGn5T\nTjRjekyi2KoDZHz4VlIzyZPwFS4I1bf3oCunVoAKzgLdmnTtvRNMC5jFOGc2vUgP\n9bSyRj3S1R4ClVk2g0IDeagko/jc8zzLEYuIK+fbkds79YECQQDt3vcevgegnkga\ntF4NsDmmBPRkcSHCqrANP/7vFcBQN3czxeYYWX3DK07alu6GhH1Y4sHbdm616uU0\nll7xbDzxAkEAzAtN2IyftNygV2EGiaGgqLyo/tD9+Vui2qCQplqe4jvWh/5Sparl\nOjmKo+uAW+hLrLVMnHzRWxbWU8hirH5FNQJATO+ZxCK4etXXAnQmG41NCAqANWB2\nB+2HJbH2NcQ2QHvAHUm741JGn/KI/aBlo7KEjFRDWUVUB5ji64BbUwCsMQJBAIku\nLGcjnBf/oLk+XSPZC2eGd2Ph5G5qYmH0Q2vkTx+wtTn3DV+eNsDfgMtWAJVJ5t61\ngU1QSXyhLPVlKpnnxuUCQC+xvvWjWtsLaFtAsZywJiqLxQzHts8XLGZptYJ5tLWV\nrtmYtBcJCN48RrgQHry/xWYeA4K/AFQpXfNPgprQ96Q=\n-----END RSA PRIVATE KEY-----\n",
    68  		"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
    69  		"user_id": "fake"
    70  	}
    71  }
    72  `
    73  
    74  // CreateOutput is a sample response to a Create call.
    75  const CreateOutputOtherUser = `
    76  {
    77  	"keypair": {
    78  		"fingerprint": "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
    79  		"name": "createdkey",
    80  		"private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7\nDUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ\n9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5QIDAQAB\nAoGAE5XO1mDhORy9COvsg+kYPUhB1GsCYxh+v88wG7HeFDKBY6KUc/Kxo6yoGn5T\nTjRjekyi2KoDZHz4VlIzyZPwFS4I1bf3oCunVoAKzgLdmnTtvRNMC5jFOGc2vUgP\n9bSyRj3S1R4ClVk2g0IDeagko/jc8zzLEYuIK+fbkds79YECQQDt3vcevgegnkga\ntF4NsDmmBPRkcSHCqrANP/7vFcBQN3czxeYYWX3DK07alu6GhH1Y4sHbdm616uU0\nll7xbDzxAkEAzAtN2IyftNygV2EGiaGgqLyo/tD9+Vui2qCQplqe4jvWh/5Sparl\nOjmKo+uAW+hLrLVMnHzRWxbWU8hirH5FNQJATO+ZxCK4etXXAnQmG41NCAqANWB2\nB+2HJbH2NcQ2QHvAHUm741JGn/KI/aBlo7KEjFRDWUVUB5ji64BbUwCsMQJBAIku\nLGcjnBf/oLk+XSPZC2eGd2Ph5G5qYmH0Q2vkTx+wtTn3DV+eNsDfgMtWAJVJ5t61\ngU1QSXyhLPVlKpnnxuUCQC+xvvWjWtsLaFtAsZywJiqLxQzHts8XLGZptYJ5tLWV\nrtmYtBcJCN48RrgQHry/xWYeA4K/AFQpXfNPgprQ96Q=\n-----END RSA PRIVATE KEY-----\n",
    81  		"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
    82  		"user_id": "fake2"
    83  	}
    84  }
    85  `
    86  
    87  // ImportOutput is a sample response to a Create call that provides its own public key.
    88  const ImportOutput = `
    89  {
    90  	"keypair": {
    91  		"fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c",
    92  		"name": "importedkey",
    93  		"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova",
    94  		"user_id": "fake"
    95  	}
    96  }
    97  `
    98  
    99  // FirstKeyPair is the first result in ListOutput.
   100  var FirstKeyPair = keypairs.KeyPair{
   101  	Name:        "firstkey",
   102  	Fingerprint: "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a",
   103  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n",
   104  	UserID:      "fake",
   105  }
   106  
   107  // FirstKeyPair is the first result in ListOutput.
   108  var FirstKeyPairOtherUser = keypairs.KeyPair{
   109  	Name:        "firstkey",
   110  	Fingerprint: "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a",
   111  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n",
   112  	UserID:      "fake2",
   113  }
   114  
   115  // SecondKeyPair is the second result in ListOutput.
   116  var SecondKeyPair = keypairs.KeyPair{
   117  	Name:        "secondkey",
   118  	Fingerprint: "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
   119  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
   120  	UserID:      "fake",
   121  }
   122  
   123  // ExpectedKeyPairSlice is the slice of results that should be parsed from ListOutput, in the expected
   124  // order.
   125  var ExpectedKeyPairSlice = []keypairs.KeyPair{FirstKeyPair, SecondKeyPair}
   126  
   127  // CreatedKeyPair is the parsed result from CreatedOutput.
   128  var CreatedKeyPair = keypairs.KeyPair{
   129  	Name:        "createdkey",
   130  	Fingerprint: "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
   131  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
   132  	PrivateKey:  "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7\nDUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ\n9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5QIDAQAB\nAoGAE5XO1mDhORy9COvsg+kYPUhB1GsCYxh+v88wG7HeFDKBY6KUc/Kxo6yoGn5T\nTjRjekyi2KoDZHz4VlIzyZPwFS4I1bf3oCunVoAKzgLdmnTtvRNMC5jFOGc2vUgP\n9bSyRj3S1R4ClVk2g0IDeagko/jc8zzLEYuIK+fbkds79YECQQDt3vcevgegnkga\ntF4NsDmmBPRkcSHCqrANP/7vFcBQN3czxeYYWX3DK07alu6GhH1Y4sHbdm616uU0\nll7xbDzxAkEAzAtN2IyftNygV2EGiaGgqLyo/tD9+Vui2qCQplqe4jvWh/5Sparl\nOjmKo+uAW+hLrLVMnHzRWxbWU8hirH5FNQJATO+ZxCK4etXXAnQmG41NCAqANWB2\nB+2HJbH2NcQ2QHvAHUm741JGn/KI/aBlo7KEjFRDWUVUB5ji64BbUwCsMQJBAIku\nLGcjnBf/oLk+XSPZC2eGd2Ph5G5qYmH0Q2vkTx+wtTn3DV+eNsDfgMtWAJVJ5t61\ngU1QSXyhLPVlKpnnxuUCQC+xvvWjWtsLaFtAsZywJiqLxQzHts8XLGZptYJ5tLWV\nrtmYtBcJCN48RrgQHry/xWYeA4K/AFQpXfNPgprQ96Q=\n-----END RSA PRIVATE KEY-----\n",
   133  	UserID:      "fake",
   134  }
   135  
   136  // CreatedKeyPairOtherUser is the parsed result from CreatedOutput.
   137  var CreatedKeyPairOtherUser = keypairs.KeyPair{
   138  	Name:        "createdkey",
   139  	Fingerprint: "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
   140  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
   141  	PrivateKey:  "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7\nDUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ\n9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5QIDAQAB\nAoGAE5XO1mDhORy9COvsg+kYPUhB1GsCYxh+v88wG7HeFDKBY6KUc/Kxo6yoGn5T\nTjRjekyi2KoDZHz4VlIzyZPwFS4I1bf3oCunVoAKzgLdmnTtvRNMC5jFOGc2vUgP\n9bSyRj3S1R4ClVk2g0IDeagko/jc8zzLEYuIK+fbkds79YECQQDt3vcevgegnkga\ntF4NsDmmBPRkcSHCqrANP/7vFcBQN3czxeYYWX3DK07alu6GhH1Y4sHbdm616uU0\nll7xbDzxAkEAzAtN2IyftNygV2EGiaGgqLyo/tD9+Vui2qCQplqe4jvWh/5Sparl\nOjmKo+uAW+hLrLVMnHzRWxbWU8hirH5FNQJATO+ZxCK4etXXAnQmG41NCAqANWB2\nB+2HJbH2NcQ2QHvAHUm741JGn/KI/aBlo7KEjFRDWUVUB5ji64BbUwCsMQJBAIku\nLGcjnBf/oLk+XSPZC2eGd2Ph5G5qYmH0Q2vkTx+wtTn3DV+eNsDfgMtWAJVJ5t61\ngU1QSXyhLPVlKpnnxuUCQC+xvvWjWtsLaFtAsZywJiqLxQzHts8XLGZptYJ5tLWV\nrtmYtBcJCN48RrgQHry/xWYeA4K/AFQpXfNPgprQ96Q=\n-----END RSA PRIVATE KEY-----\n",
   142  	UserID:      "fake2",
   143  }
   144  
   145  // ImportedKeyPair is the parsed result from ImportOutput.
   146  var ImportedKeyPair = keypairs.KeyPair{
   147  	Name:        "importedkey",
   148  	Fingerprint: "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c",
   149  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova",
   150  	UserID:      "fake",
   151  }
   152  
   153  // HandleListSuccessfully configures the test server to respond to a List request.
   154  func HandleListSuccessfully(t *testing.T) {
   155  	th.Mux.HandleFunc("/os-keypairs", func(w http.ResponseWriter, r *http.Request) {
   156  		th.TestMethod(t, r, "GET")
   157  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   158  
   159  		w.Header().Add("Content-Type", "application/json")
   160  		fmt.Fprintf(w, ListOutput)
   161  	})
   162  }
   163  
   164  // HandleGetSuccessfully configures the test server to respond to a Get request for "firstkey".
   165  func HandleGetSuccessfully(t *testing.T) {
   166  	th.Mux.HandleFunc("/os-keypairs/firstkey", func(w http.ResponseWriter, r *http.Request) {
   167  		th.TestMethod(t, r, "GET")
   168  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   169  
   170  		if r.URL.Query().Get("user_id") == "fake2" {
   171  			w.Header().Add("Content-Type", "application/json")
   172  			fmt.Fprintf(w, GetOutputOtherUser)
   173  
   174  		} else {
   175  			w.Header().Add("Content-Type", "application/json")
   176  			fmt.Fprintf(w, GetOutput)
   177  
   178  		}
   179  	})
   180  }
   181  
   182  // HandleCreateSuccessfully configures the test server to respond to a Create request for a new
   183  // keypair called "createdkey".
   184  func HandleCreateSuccessfully(t *testing.T) {
   185  	th.Mux.HandleFunc("/os-keypairs", func(w http.ResponseWriter, r *http.Request) {
   186  		th.TestMethod(t, r, "POST")
   187  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   188  		th.TestJSONRequest(t, r, `{ "keypair": { "name": "createdkey" } }`)
   189  
   190  		w.Header().Add("Content-Type", "application/json")
   191  		fmt.Fprintf(w, CreateOutput)
   192  	})
   193  }
   194  
   195  // HandleCreateSuccessfullyOtherUser configures the test server to respond to a Create request for a new
   196  // keypair called "createdkey" for another user, different than the current one.
   197  func HandleCreateSuccessfullyOtherUser(t *testing.T) {
   198  	th.Mux.HandleFunc("/os-keypairs", func(w http.ResponseWriter, r *http.Request) {
   199  		th.TestMethod(t, r, "POST")
   200  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   201  		th.TestJSONRequest(t, r, `{ "keypair": { "name": "createdkey", "user_id": "fake2" } }`)
   202  
   203  		w.Header().Add("Content-Type", "application/json")
   204  		fmt.Fprintf(w, CreateOutputOtherUser)
   205  	})
   206  }
   207  
   208  // HandleImportSuccessfully configures the test server to respond to an Import request for an
   209  // existing keypair called "importedkey".
   210  func HandleImportSuccessfully(t *testing.T) {
   211  	th.Mux.HandleFunc("/os-keypairs", func(w http.ResponseWriter, r *http.Request) {
   212  		th.TestMethod(t, r, "POST")
   213  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   214  		th.TestJSONRequest(t, r, `
   215  			{
   216  				"keypair": {
   217  					"name": "importedkey",
   218  					"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova"
   219  				}
   220  			}
   221  		`)
   222  
   223  		w.Header().Add("Content-Type", "application/json")
   224  		fmt.Fprintf(w, ImportOutput)
   225  	})
   226  }
   227  
   228  // HandleDeleteSuccessfully configures the test server to respond to a Delete request for a
   229  // keypair called "deletedkey".
   230  func HandleDeleteSuccessfully(t *testing.T) {
   231  	th.Mux.HandleFunc("/os-keypairs/deletedkey", func(w http.ResponseWriter, r *http.Request) {
   232  		th.TestMethod(t, r, "DELETE")
   233  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   234  		th.AssertEquals(t, r.Form.Get("user_id"), "")
   235  
   236  		w.WriteHeader(http.StatusAccepted)
   237  	})
   238  }
   239  
   240  // HandleDeleteSuccessfully configures the test server to respond to a Delete request for a
   241  // keypair called "deletedkey" for another user.
   242  func HandleDeleteSuccessfullyOtherUser(t *testing.T) {
   243  	th.Mux.HandleFunc("/os-keypairs/deletedkey", func(w http.ResponseWriter, r *http.Request) {
   244  		th.TestMethod(t, r, "DELETE")
   245  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   246  		th.TestFormValues(t, r, map[string]string{"user_id": "fake2"})
   247  
   248  		w.WriteHeader(http.StatusAccepted)
   249  	})
   250  }