353
354
self.assertEqual(expected, result)
356
@patch.dict(os.environ, {"JUJU_UNIT_NAME": "haproxy/2"})
357
def test_creates_a_listen_stanza_with_errorfiles(self):
358
service_name = 'some-name'
359
service_ip = '10.11.12.13'
361
service_options = ('foo', 'bar')
363
('name-1', 'ip-1', 'port-1', ('foo1', 'bar1')),
364
('name-2', 'ip-2', 'port-2', ('foo2', 'bar2')),
366
content = ("HTTP/1.0 403 Forbidden\r\n"
367
"Content-Type: text/html\r\n"
370
errorfiles = [{'http_status': 403,
371
'content': base64.b64encode(content)}]
373
result = hooks.create_listen_stanza(service_name, service_ip,
374
service_port, service_options,
375
server_entries, errorfiles)
377
expected = '\n'.join((
378
'frontend haproxy-2-1234',
379
' bind 10.11.12.13:1234',
380
' default_backend some-name',
385
' errorfile 403 /var/lib/haproxy/service_some-name/403.http',
386
' server name-1 ip-1:port-1 foo1 bar1',
387
' server name-2 ip-2:port-2 foo2 bar2',
390
self.assertEqual(expected, result)
355
392
def test_doesnt_create_listen_stanza_if_args_not_provided(self):
356
393
self.assertIsNone(hooks.create_listen_stanza())