'Create a Gate operation that will create a new application.
Args:
bindings: [dict] key/value pairs including optional TEST_EMAIL.
application: [string] Name of application to create.
account_name: [string] Account name owning the application.
description: [string] Text description field for the operation payload.
Returns:
AgentOperation.'

def make_create_app_operation(self, bindings, application, account_name, description=None):

    email = bindings.get('TEST_EMAIL', 'testuser@testhost.org')
    payload = self.make_json_payload_from_kwargs(job=[{'type': 'createApplication', 'account': account_name, 'application': {'name': application, 'description': (description or 'Gate    Testing    Application'), 'email': email}, 'user': '[anonymous]'}], description=('Create    Application:    ' + application), application=application)
    return self.new_post_operation(title='create_app', data=payload, path='tasks')
