def test_unbind_and_bind_instance_with_extra_path(self, LoadBalancer): self.storage.store_binding("inst", "app.host.com") self.storage.replace_binding_path("inst", "/me", "somewhere.com") lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.consul_manager = mock.Mock() manager.unbind("inst", "app.host.com") manager.bind("inst", "app2.host.com") binding_data = self.storage.find_binding("inst") self.assertDictEqual( binding_data, { "_id": "inst", "app_host": "app2.host.com", "paths": [{ "path": "/me", "destination": "somewhere.com", "content": None }, { "path": "/", "destination": "app2.host.com" }] }) LoadBalancer.find.assert_called_with("inst") manager.consul_manager.remove_location.assert_called_with("inst", "/") manager.consul_manager.write_location.assert_called_with( "inst", "/", destination="app2.host.com")
def test_unbind_and_bind_instance_with_extra_path(self, LoadBalancer, nginx): self.storage.store_binding('inst', 'app.host.com') self.storage.replace_binding_path('inst', '/me', 'somewhere.com') lb = LoadBalancer.find.return_value nginx_manager = nginx.NginxDAV.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.unbind('inst', 'app.host.com') manager.bind('inst', 'app2.host.com') binding_data = self.storage.find_binding('inst') self.assertDictEqual(binding_data, { '_id': 'inst', 'app_host': 'app2.host.com', 'paths': [ {'path': '/me', 'destination': 'somewhere.com', 'content': None}, {'path': '/', 'destination': 'app2.host.com'} ] }) LoadBalancer.find.assert_called_with('inst') self.assertEqual(nginx_manager.delete_binding.call_count, 2) nginx_manager.delete_binding.assert_any_call(lb.hosts[0].dns_name, '/') nginx_manager.delete_binding.assert_any_call(lb.hosts[1].dns_name, '/') self.assertEqual(nginx_manager.update_binding.call_count, 2) nginx_manager.update_binding.assert_any_call(lb.hosts[0].dns_name, '/', 'app2.host.com') nginx_manager.update_binding.assert_any_call(lb.hosts[1].dns_name, '/', 'app2.host.com')
def test_unbind_and_bind_instance_with_extra_path(self, LoadBalancer, nginx): self.storage.store_binding("inst", "app.host.com") self.storage.replace_binding_path("inst", "/me", "somewhere.com") lb = LoadBalancer.find.return_value nginx_manager = nginx.NginxDAV.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.unbind("inst", "app.host.com") manager.bind("inst", "app2.host.com") binding_data = self.storage.find_binding("inst") self.assertDictEqual(binding_data, { "_id": "inst", "app_host": "app2.host.com", "paths": [ {"path": "/me", "destination": "somewhere.com", "content": None}, {"path": "/", "destination": "app2.host.com"} ] }) LoadBalancer.find.assert_called_with("inst") self.assertEqual(nginx_manager.delete_binding.call_count, 2) nginx_manager.delete_binding.assert_any_call(lb.hosts[0].dns_name, "/") nginx_manager.delete_binding.assert_any_call(lb.hosts[1].dns_name, "/") self.assertEqual(nginx_manager.update_binding.call_count, 2) nginx_manager.update_binding.assert_any_call(lb.hosts[0].dns_name, "/", "app2.host.com") nginx_manager.update_binding.assert_any_call(lb.hosts[1].dns_name, "/", "app2.host.com")
def test_unbind_instance(self, LoadBalancer): self.storage.store_binding("inst", "app.host.com") lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.consul_manager = mock.Mock() manager.unbind("inst", "app.host.com") binding_data = self.storage.find_binding("inst") self.assertDictEqual(binding_data, {"_id": "inst", "paths": []}) LoadBalancer.find.assert_called_with("inst") manager.consul_manager.remove_location.assert_called_with("inst", "/")
def test_unbind_instance(self, LoadBalancer): self.storage.store_binding("inst", "app.host.com") lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.consul_manager = mock.Mock() manager.unbind("inst", "app.host.com") binding_data = self.storage.find_binding("inst") self.assertDictEqual(binding_data, { "_id": "inst", "paths": [] }) LoadBalancer.find.assert_called_with("inst") manager.consul_manager.remove_location.assert_called_with("inst", "/")
def test_unbind_instance(self, LoadBalancer, nginx): self.storage.store_binding('inst', 'app.host.com') lb = LoadBalancer.find.return_value nginx_manager = nginx.NginxDAV.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.unbind('inst', 'app.host.com') binding_data = self.storage.find_binding('inst') self.assertDictEqual(binding_data, { '_id': 'inst', 'paths': [] }) LoadBalancer.find.assert_called_with('inst') self.assertEqual(nginx_manager.delete_binding.call_count, 2) nginx_manager.delete_binding.assert_any_call(lb.hosts[0].dns_name, '/') nginx_manager.delete_binding.assert_any_call(lb.hosts[1].dns_name, '/')
def test_unbind_instance(self, LoadBalancer, nginx): self.storage.store_binding("inst", "app.host.com") lb = LoadBalancer.find.return_value nginx_manager = nginx.NginxDAV.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.unbind("inst", "app.host.com") binding_data = self.storage.find_binding("inst") self.assertDictEqual(binding_data, { "_id": "inst", "paths": [] }) LoadBalancer.find.assert_called_with("inst") self.assertEqual(nginx_manager.delete_binding.call_count, 2) nginx_manager.delete_binding.assert_any_call(lb.hosts[0].dns_name, "/") nginx_manager.delete_binding.assert_any_call(lb.hosts[1].dns_name, "/")
def test_unbind_instance_with_extra_path(self, LoadBalancer): self.storage.store_binding("inst", "app.host.com") self.storage.replace_binding_path("inst", "/me", "somewhere.com") lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.consul_manager = mock.Mock() manager.unbind("inst", "app.host.com") binding_data = self.storage.find_binding("inst") self.assertDictEqual(binding_data, { "_id": "inst", "paths": [ {"path": "/me", "destination": "somewhere.com", "content": None} ] }) LoadBalancer.find.assert_called_with("inst") manager.consul_manager.remove_location.assert_called_with("inst", "/")