258
258
self.assertEqual(expected, result)
260
260
@patch.dict(os.environ, {"JUJU_UNIT_NAME": "haproxy/2"})
261
def test_creates_a_listen_stanza_string_server_options(self):
262
service_name = 'some-name'
263
service_ip = '10.11.12.13'
265
service_options = ('foo', 'bar')
267
('name-1', 'ip-1', 'port-1', 'foo1 bar1'),
268
('name-2', 'ip-2', 'port-2', 'foo2 bar2'),
271
result = hooks.create_listen_stanza(service_name, service_ip,
272
service_port, service_options,
275
expected = '\n'.join((
276
'frontend haproxy-2-1234',
277
' bind 10.11.12.13:1234',
278
' default_backend some-name',
283
' server name-1 ip-1:port-1 foo1 bar1',
284
' server name-2 ip-2:port-2 foo2 bar2',
287
self.assertEqual(expected, result)
289
@patch.dict(os.environ, {"JUJU_UNIT_NAME": "haproxy/2"})
261
290
def test_create_listen_stanza_filters_frontend_options(self):
262
291
service_name = 'some-name'
263
292
service_ip = '10.11.12.13'
542
571
'service_options': ['foo1', 'foo2'],
543
'server_options': 'baz1 baz2',
572
'server_options': 'baz1, baz2',
546
575
'service_name': 'bar',
547
576
'service_options': ['bar1', 'bar2'],
548
'server_options': 'baz1 baz2',
577
'server_options': 'baz1, baz2',
551
580
is_proxy.return_value = False
570
599
self.assertEqual(expected, result)
601
@patch('hooks.is_proxy')
602
@patch('hooks.config_get')
603
@patch('yaml.safe_load')
604
def test_gets_config_services_with_proxy_no_forward(self, safe_load,
605
config_get, is_proxy):
606
config_get.return_value = {
607
'services': 'some-services',
609
safe_load.return_value = [
611
'service_name': 'foo',
615
'service_options': ['foo1', 'foo2'],
616
'server_options': 'baz1, baz2',
619
'service_name': 'bar',
620
'service_options': ['bar1', 'bar2'],
621
'server_options': 'baz1, baz2',
624
is_proxy.return_value = True
626
result = hooks.get_config_services()
629
'service_name': 'foo',
632
'service_name': 'foo',
633
'service_options': ['foo1', 'foo2', 'option forwardfor'],
634
'server_options': ['baz1', 'baz2'],
637
'service_name': 'bar',
638
'service_options': ['bar1', 'bar2', 'option forwardfor'],
639
'server_options': ['baz1', 'baz2'],
643
self.assertEqual(expected, result)
645
@patch('hooks.is_proxy')
646
@patch('hooks.config_get')
647
@patch('yaml.safe_load')
648
def test_gets_config_services_no_service_options(self, safe_load,
649
config_get, is_proxy):
650
config_get.return_value = {
653
safe_load.return_value = [
655
'service_name': 'foo',
656
'server_options': 'baz1, baz2',
659
'service_name': 'bar',
660
'server_options': 'baz1, baz2',
663
is_proxy.return_value = True
665
result = hooks.get_config_services()
668
'service_name': 'foo',
671
'service_name': 'foo',
672
'server_options': ['baz1', 'baz2'],
675
'service_name': 'bar',
676
'server_options': ['baz1', 'baz2'],
680
self.assertEqual(expected, result)
572
682
@patch('hooks.get_config_services')
573
683
def test_gets_a_service_config(self, get_config_services):
574
684
get_config_services.return_value = {