def test_unit_info(self): # unit_info returns requested data about a given service. juju_yaml = self._make_juju_status_yaml() mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) self.assertEqual('pending', charmhelpers.unit_info('test-service', 'agent-state'))
def test_unit_info(self): # unit_info returns requested data about a given service. juju_yaml = self._make_juju_status_yaml() mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) self.assertEqual( 'pending', charmhelpers.unit_info('test-service', 'agent-state'))
def test_unit_info_returns_first_unit_by_default(self): # By default, unit_info() just returns the value of the # requested item for the first unit in a service. juju_yaml = self._make_juju_status_yaml(num_units=2) mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) unit_address = charmhelpers.unit_info('test-service', 'public-address') self.assertEqual('test-service-0.example.com', unit_address)
def test_unit_info_returns_empty_for_nonexistent_service(self): # If the service passed to unit_info() has not yet started (or # otherwise doesn't exist), unit_info() will return an empty # string. juju_yaml = "services: {}" mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) self.assertEqual('', charmhelpers.unit_info('test-service', 'state'))
def test_unit_info_returns_first_unit_by_default(self): # By default, unit_info() just returns the value of the # requested item for the first unit in a service. juju_yaml = self._make_juju_status_yaml(num_units=2) mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) unit_address = charmhelpers.unit_info( 'test-service', 'public-address') self.assertEqual('test-service-0.example.com', unit_address)
def test_unit_info_returns_empty_for_nonexistent_service(self): # If the service passed to unit_info() has not yet started (or # otherwise doesn't exist), unit_info() will return an empty # string. juju_yaml = "services: {}" mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) self.assertEqual( '', charmhelpers.unit_info('test-service', 'state'))
def test_unit_info_accepts_unit_name(self): # By default, unit_info() just returns the value of the # requested item for the first unit in a service. However, it's # possible to pass a unit name to it, too. juju_yaml = self._make_juju_status_yaml(num_units=2) mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) unit_address = charmhelpers.unit_info( 'test-service', 'public-address', unit='test-service/1') self.assertEqual('test-service-1.example.com', unit_address)
def test_unit_info_accepts_unit_name(self): # By default, unit_info() just returns the value of the # requested item for the first unit in a service. However, it's # possible to pass a unit name to it, too. juju_yaml = self._make_juju_status_yaml(num_units=2) mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) unit_address = charmhelpers.unit_info('test-service', 'public-address', unit='test-service/1') self.assertEqual('test-service-1.example.com', unit_address)
def test_unit_info_accepts_data(self): # It's possible to pass a `data` dict, containing the parsed # result of juju status, to unit_info(). juju_status_data = yaml.safe_load( self._make_juju_status_yaml()) self.patch(charmhelpers, 'juju_status', lambda: None) service_data = juju_status_data['services']['test-service'] unit_info_dict = service_data['units']['test-service/0'] for key, value in unit_info_dict.items(): item_info = charmhelpers.unit_info( 'test-service', key, data=juju_status_data) self.assertEqual(value, item_info)
def test_unit_info_accepts_data(self): # It's possible to pass a `data` dict, containing the parsed # result of juju status, to unit_info(). juju_status_data = yaml.safe_load(self._make_juju_status_yaml()) self.patch(charmhelpers, 'juju_status', lambda: None) service_data = juju_status_data['services']['test-service'] unit_info_dict = service_data['units']['test-service/0'] for key, value in unit_info_dict.items(): item_info = charmhelpers.unit_info('test-service', key, data=juju_status_data) self.assertEqual(value, item_info)