def test_init_deployment_id(self): righteous.init('user', 'pass', 'account', default_deployment_id='22') assert_equal(righteous.config.settings.default_deployment_id, '22') server_parameters = righteous.config.settings.create_server_parameters assert_equal(server_parameters['deployment_href'], 'https://my.rightscale.com/api/acct/account/deployments/22')
def initialise(arguments): verbose = arguments['--verbose'] config_file = arguments['--config'] if verbose: logging.basicConfig(level=logging.DEBUG) config = read_authentication(config_file or AUTH_FILE) if not config: # TODO: prompt for config and store pass username, password, account_id = tuple(config.get('auth', key) for key in config.options('auth')) server_parameters = dict(config.items('server-defaults')) righteous.init(username, password, account_id, **server_parameters) if righteous.login(): cache_authentication(username, password, account_id, config_file or AUTH_FILE) else: puts_err(colored.red('Authentication failed')) exit(2) return verbose
def test_create_and_start_server(self): create_server_parameters = { 'm1.small': 'https://my.rightscale.com/api/acct/123/ec2_server_templates/52271', } righteous.init('user', 'pass', 'account', **create_server_parameters) new_server_href = '/server/new' self.response.status_code = 201 self.response.headers['location'] = new_server_href success, location = righteous.create_and_start_server('arduous', 'm1.small', server_template_parameters={'envname':'arduous'}) assert success assert_equal(self.request.call_count, 3) # create server create_data = { 'server[nickname]': 'arduous', 'server[server_template_href]': create_server_parameters['m1.small'] } create_expected = urlencode(create_data) self.request.assert_any_call('/servers', method='POST', body=create_expected) # set server parameters self.request.assert_any_call(new_server_href, method='PUT', body='server[parameters][ENVNAME]=text:arduous', headers={'Content-Type': 'application/x-www-form-urlencoded'}, prepend_api_base=False) # start server self.request.assert_any_call(new_server_href+'/start', method='POST', prepend_api_base=False)
def test_request_no_prepend(self): username, password, account_id = 'user', 'pass', 'account_id' righteous.init(username, password, account_id, debug=False) headers = {'X-API-VERSION': '1.0'} with patch('righteous.api.requests') as mock_requests: righteous.api._request('/test', prepend_api_base=False) mock_requests.request.assert_called_once_with('GET', '/test', headers=headers, config={}, data=None)
def test_request(self): username, password, account_id = 'user', 'pass', 'account_id' righteous.init(username, password, account_id, debug=False) headers = {'X-API-VERSION': '1.0'} with patch('righteous.api.requests') as mock_requests: righteous.api._request('/test') mock_requests.request.assert_called_once_with('GET', 'https://my.rightscale.com/api/acct/account_id/test', headers=headers, config={}, data=None)
def test_create_and_start_server_fails(self): create_server_parameters = { 'm1.small': 'https://my.rightscale.com/api/acct/123/ec2_server_templates/52271', } righteous.init('user', 'pass', 'account', **create_server_parameters) success, location = righteous.create_and_start_server('titanic', 'm1.small') assert not success assert not location
def test_login_with_init_credentials(self): username, password, account_id = 'user', 'pass', 'account_id' auth = base64.encodestring('%s:%s' % (username, password))[:-1] righteous.init(username, password, account_id) self.response.status_code = 204 self.response.headers['set-cookie'] = 'cookie_value' login_result = righteous.login() assert login_result self.request.assert_called_once_with('/login', headers={'Authorization': 'Basic %s' % auth})
def initialise_righteous(self): config = SafeConfigParser() config.read('righteous.config') if not config.has_section('auth'): raise Exception('Please create a righteous.config file with appropriate credentials') self.auth = dict((key,config.get('auth', key)) for key in config.options('auth')) self.server = dict((key,config.get('server-defaults', key)) for key in config.options('server-defaults')) righteous.init(self.auth['username'], self.auth['password'], self.auth['account_id'], **self.server) if not righteous.config.settings.cookies: righteous.login()
def test_create_server_with_init_params(self): create_server_parameters = { 'm1.small': 'https://my.rightscale.com/api/acct/123/ec2_server_templates/52271', 'm1.large': 'https://my.rightscale.com/api/acct/123/ec2_server_templates/273583', } create_data = { 'server[nickname]' : 'torv', 'server[server_template_href]': create_server_parameters['m1.large'] } expected = urlencode(create_data) righteous.init('user', 'pass', 'account', **create_server_parameters) righteous.create_server('torv', 'm1.large') self.request.assert_called_once_with('/servers', method='POST', body=expected)
def test_init_with_kwargs(self): righteous.init('user', 'pass', 'account', debug=True, foo='bar') assert_equal(righteous.config.settings.username, 'user') assert_equal(righteous.config.settings.debug, sys.stderr) assert_equal(righteous.config.settings.create_server_parameters['foo'], 'bar')
def test_init_with_args(self): righteous.init('user', 'pass', 'account') assert_equal(righteous.config.settings.username, 'user')
def test_list_servers(self): righteous.init('user', 'pass', 'account_id', default_deployment_id='foo') self.response.content = '{}' righteous.list_servers() self.request.assert_called_once_with('/deployments/foo.js')
def setup(self): righteous.init('user', 'pass', 'account_id')
def test_list_deployments(self): righteous.init("user", "pass", "account_id", default_deployment_id="foo") self.response.content = "{}" righteous.list_deployments() self.request.assert_called_once_with("/deployments.js")