From 3c75e0ef2e308f84b9d26ecebb42a50d905fb899 Mon Sep 17 00:00:00 2001 From: Kevin Donnelly Date: Wed, 20 May 2015 19:42:58 +0000 Subject: [PATCH] Fix bug where listener certificate was not being saved correctly when creating an elb. Added test to cover that case. Paired with @jszwedko --- moto/elb/responses.py | 2 +- tests/test_elb/test_elb.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/moto/elb/responses.py b/moto/elb/responses.py index 8a7902f37..d33a78fc8 100644 --- a/moto/elb/responses.py +++ b/moto/elb/responses.py @@ -31,7 +31,7 @@ class ELBResponse(BaseResponse): break lb_port = self.querystring['Listeners.member.{0}.LoadBalancerPort'.format(port_index)][0] instance_port = self.querystring['Listeners.member.{0}.InstancePort'.format(port_index)][0] - ssl_certificate_id = self.querystring.get('Listeners.member.{0}.SSLCertificateId'.format(port_index)[0], None) + ssl_certificate_id = self.querystring.get('Listeners.member.{0}.SSLCertificateId'.format(port_index), [None])[0] ports.append([protocol, lb_port, instance_port, ssl_certificate_id]) port_index += 1 diff --git a/tests/test_elb/test_elb.py b/tests/test_elb/test_elb.py index 3c8f3f22f..9bb0c136b 100644 --- a/tests/test_elb/test_elb.py +++ b/tests/test_elb/test_elb.py @@ -48,6 +48,24 @@ def test_create_elb_in_multiple_region(): list(west1_conn.get_all_load_balancers()).should.have.length_of(1) list(west2_conn.get_all_load_balancers()).should.have.length_of(1) +@mock_elb +def test_create_load_balancer_with_certificate(): + conn = boto.connect_elb() + + zones = ['us-east-1a'] + ports = [(443, 8443, 'https', 'arn:aws:iam:123456789012:server-certificate/test-cert')] + conn.create_load_balancer('my-lb', zones, ports) + + balancers = conn.get_all_load_balancers() + balancer = balancers[0] + balancer.name.should.equal("my-lb") + set(balancer.availability_zones).should.equal(set(['us-east-1a'])) + listener = balancer.listeners[0] + listener.load_balancer_port.should.equal(443) + listener.instance_port.should.equal(8443) + listener.protocol.should.equal("HTTPS") + listener.ssl_certificate_id.should.equal('arn:aws:iam:123456789012:server-certificate/test-cert') + @mock_elb def test_add_listener():