def test_update_alias(self):
        with self.app.test_request_context():
            self._create_function(self.FUNCTION_NAME)
            lambda_api.publish_version(self.FUNCTION_NAME)
            flask.request.data = json.dumps({
                'Name': self.ALIAS_NAME,
                'FunctionVersion': '1',
                'Description': ''
            })
            lambda_api.create_alias(self.FUNCTION_NAME).get_data()

            flask.request.data = json.dumps({
                'FunctionVersion': '$LATEST',
                'Description': 'Test-Description'
            })
            result = json.loads(
                lambda_api.update_alias(self.FUNCTION_NAME,
                                        self.ALIAS_NAME).get_data())

            expected_result = {
                'AliasArn': lambda_api.func_arn(self.FUNCTION_NAME) + ':' +
                self.ALIAS_NAME,
                'FunctionVersion': '$LATEST',
                'Description': 'Test-Description',
                'Name': self.ALIAS_NAME
            }
            self.assertDictEqual(expected_result, result)
 def test_create_alias_on_non_existant_function_returns_error(self):
     with self.app.test_request_context():
         result = json.loads(
             lambda_api.create_alias(self.FUNCTION_NAME).get_data())
         self.assertEqual(self.RESOURCENOTFOUND_EXCEPTION, result['__type'])
         self.assertEqual(
             self.RESOURCENOTFOUND_MESSAGE %
             lambda_api.func_arn(self.FUNCTION_NAME), result['message'])
    def test_create_alias_returns_error_if_already_exists(self):
        with self.app.test_request_context():
            self._create_function(self.FUNCTION_NAME)
            lambda_api.publish_version(self.FUNCTION_NAME)
            flask.request.data = json.dumps({
                'Name': self.ALIAS_NAME,
                'FunctionVersion': '1',
                'Description': ''
            })

            lambda_api.create_alias(self.FUNCTION_NAME).get_data()
            result = json.loads(
                lambda_api.create_alias(self.FUNCTION_NAME).get_data())
            alias_arn = lambda_api.func_arn(
                self.FUNCTION_NAME) + ':' + self.ALIAS_NAME
            self.assertEqual(self.ALIASEXISTS_EXCEPTION, result['__type'])
            self.assertEqual(self.ALIASEXISTS_MESSAGE % alias_arn,
                             result['message'])