@@ -91,68 +91,104 @@ def __init__(self, *args, **kwargs):
9191 ]
9292 }
9393 ]})
94+ self ._test_vcap_services_dedicated = json .dumps ({
95+ 'cloudantNoSQLDB Dedicated' : [ # dedicated service name
96+ {
97+ 'name' : 'Cloudant NoSQL DB 1' , # valid service
98+ 'credentials' : {
99+ 'host' : 'example.cloudant.com' ,
100+ 'password' : 'pa$$w0rd01' ,
101+ 'port' : 1234 ,
102+ 'username' : 'example'
103+ }
104+ }
105+ ]
106+ })
94107
95108 def test_get_vcap_service_default_success (self ):
96- service = CloudFoundryService (self ._test_vcap_services_single )
109+ service = CloudFoundryService (
110+ self ._test_vcap_services_single ,
111+ service_name = 'cloudantNoSQLDB'
112+ )
97113 self .assertEqual ('Cloudant NoSQL DB 1' , service .name )
98114
99115 def test_get_vcap_service_default_success_as_dict (self ):
100116 service = CloudFoundryService (
101- json .loads (self ._test_vcap_services_single )
117+ json .loads (self ._test_vcap_services_single ),
118+ service_name = 'cloudantNoSQLDB'
102119 )
103120 self .assertEqual ('Cloudant NoSQL DB 1' , service .name )
104121
105122 def test_get_vcap_service_default_failure_multiple_services (self ):
106123 with self .assertRaises (CloudantException ) as cm :
107- CloudFoundryService (self ._test_vcap_services_multiple )
124+ CloudFoundryService (
125+ self ._test_vcap_services_multiple ,
126+ service_name = 'cloudantNoSQLDB'
127+ )
108128 self .assertEqual ('Missing service in VCAP_SERVICES' , str (cm .exception ))
109129
110130 def test_get_vcap_service_instance_host (self ):
111131 service = CloudFoundryService (
112- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 1'
132+ self ._test_vcap_services_multiple ,
133+ instance_name = 'Cloudant NoSQL DB 1' ,
134+ service_name = 'cloudantNoSQLDB'
113135 )
114136 self .assertEqual ('example.cloudant.com' , service .host )
115137
116138 def test_get_vcap_service_instance_password (self ):
117139 service = CloudFoundryService (
118- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 1'
140+ self ._test_vcap_services_multiple ,
141+ instance_name = 'Cloudant NoSQL DB 1' ,
142+ service_name = 'cloudantNoSQLDB'
119143 )
120144 self .assertEqual ('pa$$w0rd01' , service .password )
121145
122146 def test_get_vcap_service_instance_port (self ):
123147 service = CloudFoundryService (
124- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 1'
148+ self ._test_vcap_services_multiple ,
149+ instance_name = 'Cloudant NoSQL DB 1' ,
150+ service_name = 'cloudantNoSQLDB'
125151 )
126152 self .assertEqual ('1234' , service .port )
127153
128154 def test_get_vcap_service_instance_port_default (self ):
129155 service = CloudFoundryService (
130- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 2'
156+ self ._test_vcap_services_multiple ,
157+ instance_name = 'Cloudant NoSQL DB 2' ,
158+ service_name = 'cloudantNoSQLDB'
131159 )
132160 self .assertEqual ('443' , service .port )
133161
134162 def test_get_vcap_service_instance_url (self ):
135163 service = CloudFoundryService (
136- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 1'
164+ self ._test_vcap_services_multiple ,
165+ instance_name = 'Cloudant NoSQL DB 1' ,
166+ service_name = 'cloudantNoSQLDB'
137167 )
138168 self .assertEqual ('https://example.cloudant.com:1234' , service .url )
139169
140170 def test_get_vcap_service_instance_username (self ):
141171 service = CloudFoundryService (
142- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 1'
172+ self ._test_vcap_services_multiple ,
173+ instance_name = 'Cloudant NoSQL DB 1' ,
174+ service_name = 'cloudantNoSQLDB'
143175 )
144176 self .assertEqual ('example' , service .username )
145177
146178 def test_raise_error_for_missing_host (self ):
147179 with self .assertRaises (CloudantException ):
148180 CloudFoundryService (
149- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 3'
181+ self ._test_vcap_services_multiple ,
182+ instance_name = 'Cloudant NoSQL DB 3' ,
183+ service_name = 'cloudantNoSQLDB'
150184 )
151185
152186 def test_raise_error_for_missing_password (self ):
153187 with self .assertRaises (CloudantException ) as cm :
154188 CloudFoundryService (
155- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 4'
189+ self ._test_vcap_services_multiple ,
190+ instance_name = 'Cloudant NoSQL DB 4' ,
191+ service_name = 'cloudantNoSQLDB'
156192 )
157193 self .assertEqual (
158194 "Invalid service: 'password' missing" ,
@@ -162,7 +198,9 @@ def test_raise_error_for_missing_password(self):
162198 def test_raise_error_for_missing_username (self ):
163199 with self .assertRaises (CloudantException ) as cm :
164200 CloudFoundryService (
165- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 5'
201+ self ._test_vcap_services_multiple ,
202+ instance_name = 'Cloudant NoSQL DB 5' ,
203+ service_name = 'cloudantNoSQLDB'
166204 )
167205 self .assertEqual (
168206 "Invalid service: 'username' missing" ,
@@ -172,7 +210,9 @@ def test_raise_error_for_missing_username(self):
172210 def test_raise_error_for_invalid_credentials_type (self ):
173211 with self .assertRaises (CloudantException ) as cm :
174212 CloudFoundryService (
175- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 6'
213+ self ._test_vcap_services_multiple ,
214+ instance_name = 'Cloudant NoSQL DB 6' ,
215+ service_name = 'cloudantNoSQLDB'
176216 )
177217 self .assertEqual (
178218 'Failed to decode VCAP_SERVICES service credentials' ,
@@ -182,11 +222,20 @@ def test_raise_error_for_invalid_credentials_type(self):
182222 def test_raise_error_for_missing_service (self ):
183223 with self .assertRaises (CloudantException ) as cm :
184224 CloudFoundryService (
185- self ._test_vcap_services_multiple , 'Cloudant NoSQL DB 7'
225+ self ._test_vcap_services_multiple ,
226+ instance_name = 'Cloudant NoSQL DB 7' ,
227+ service_name = 'cloudantNoSQLDB'
186228 )
187229 self .assertEqual ('Missing service in VCAP_SERVICES' , str (cm .exception ))
188230
189231 def test_raise_error_for_invalid_vcap (self ):
190232 with self .assertRaises (CloudantException ) as cm :
191233 CloudFoundryService ('{' , 'Cloudant NoSQL DB 1' ) # invalid JSON
192234 self .assertEqual ('Failed to decode VCAP_SERVICES JSON' , str (cm .exception ))
235+
236+ def test_get_vcap_service_with_dedicated_service_name_success (self ):
237+ service = CloudFoundryService (
238+ self ._test_vcap_services_dedicated ,
239+ service_name = 'cloudantNoSQLDB Dedicated'
240+ )
241+ self .assertEqual ('Cloudant NoSQL DB 1' , service .name )
0 commit comments