airgun.views.task

Module Contents

Classes

TaskReadOnlyEntry

Similar to EditableEntry and specific for the same page types, but cannot

TaskReadOnlyEntryError

Similar to EditableEntry and specific for the same page types, but cannot

TasksView

Base view for Satellite pages

TaskDetailsView

Base view for Satellite pages

class airgun.views.task.TaskReadOnlyEntry(parent, locator=None, name=None, logger=None)

Similar to EditableEntry and specific for the same page types, but cannot be modified.

Example html representation:

<dl>
    <dt>
    <dd>
        <form>
        ...
            <span class="ng-scope">No</span>

Locator example:

//dt[contains(., 'test')]/following-sibling::dd
//dt[contains(., 'test')]/following-sibling::dd/span
BASE_LOCATOR = //span[contains(., '{}') and contains(@class,...
class airgun.views.task.TaskReadOnlyEntryError(parent, locator=None, name=None, logger=None)

Similar to EditableEntry and specific for the same page types, but cannot be modified.

Example html representation:

<dl>
    <dt>
    <dd>
        <form>
        ...
            <span class="ng-scope">No</span>

Locator example:

//dt[contains(., 'test')]/following-sibling::dd
//dt[contains(., 'test')]/following-sibling::dd/span
BASE_LOCATOR = //span[contains(., '{}')]//parent::div/following-sibling::pre
class airgun.views.task.TasksView(parent, logger=None, **kwargs)

Base view for Satellite pages

class RunningChart(parent, logger=None, **kwargs)

View is a kind of abstract widget that can hold another widgets. Remembers the order, so therefore it can function like a form with defined filling order.

It looks like this:

class Login(View):
    user = SomeInputWidget('user')
    password = SomeInputWidget('pass')
    login = SomeButtonWidget('Log In')

    def a_method(self):
        do_something()

The view is usually instantiated with an instance of widgetastic.browser.Browser, which will then enable resolving of all of the widgets defined.

Parameters
  • parent – A parent View or widgetastic.browser.Browser

  • additional_context – If the view needs some context, for example - you want to check that you are on the page of user XYZ but you can also be on the page for user FOO, then you shall use the additional_context to pass in required variables that will allow you to detect this.

ROOT = .//div[@id='running-tasks-card']
name
total
class PausedChart(parent, logger=None, **kwargs)

View is a kind of abstract widget that can hold another widgets. Remembers the order, so therefore it can function like a form with defined filling order.

It looks like this:

class Login(View):
    user = SomeInputWidget('user')
    password = SomeInputWidget('pass')
    login = SomeButtonWidget('Log In')

    def a_method(self):
        do_something()

The view is usually instantiated with an instance of widgetastic.browser.Browser, which will then enable resolving of all of the widgets defined.

Parameters
  • parent – A parent View or widgetastic.browser.Browser

  • additional_context – If the view needs some context, for example - you want to check that you are on the page of user XYZ but you can also be on the page for user FOO, then you shall use the additional_context to pass in required variables that will allow you to detect this.

ROOT = .//div[@id='paused-tasks-card']
name
total
class StoppedChart(parent, logger=None, **kwargs)

View is a kind of abstract widget that can hold another widgets. Remembers the order, so therefore it can function like a form with defined filling order.

It looks like this:

class Login(View):
    user = SomeInputWidget('user')
    password = SomeInputWidget('pass')
    login = SomeButtonWidget('Log In')

    def a_method(self):
        do_something()

The view is usually instantiated with an instance of widgetastic.browser.Browser, which will then enable resolving of all of the widgets defined.

Parameters
  • parent – A parent View or widgetastic.browser.Browser

  • additional_context – If the view needs some context, for example - you want to check that you are on the page of user XYZ but you can also be on the page for user FOO, then you shall use the additional_context to pass in required variables that will allow you to detect this.

ROOT = .//div[@id='stopped-tasks-card']
name
table
class ScheduledChart(parent, logger=None, **kwargs)

View is a kind of abstract widget that can hold another widgets. Remembers the order, so therefore it can function like a form with defined filling order.

It looks like this:

class Login(View):
    user = SomeInputWidget('user')
    password = SomeInputWidget('pass')
    login = SomeButtonWidget('Log In')

    def a_method(self):
        do_something()

The view is usually instantiated with an instance of widgetastic.browser.Browser, which will then enable resolving of all of the widgets defined.

Parameters
  • parent – A parent View or widgetastic.browser.Browser

  • additional_context – If the view needs some context, for example - you want to check that you are on the page of user XYZ but you can also be on the page for user FOO, then you shall use the additional_context to pass in required variables that will allow you to detect this.

ROOT = .//div[@id='scheduled-tasks-card']
name
total
title
focus
table
pagination
property is_displayed

Overrides the Widget.is_displayed(). The difference is that if the view does not have the root locator, it assumes it is displayed.

Returns

bool

class airgun.views.task.TaskDetailsView(parent, logger=None, **kwargs)

Base view for Satellite pages

class task(parent, logger=None, **kwargs)

Regular primary level Tab.

Usage:

@View.nested
class mytab(SatTab):
    TAB_NAME = 'My Tab'
@View.nested
class subscriptions(SatTab):
    # no need to specify 'TAB_NAME', it will be set to 'Subscriptions'
    # automatically
    pass

Note that TAB_NAME is optional and if it’s absent - capitalized class name is used instead, which is useful for simple tab names like ‘Subscriptions’

name
result
triggered_by
execution_type
start_at
started_at
ended_at
start_before
state
progressbar
output
errors
breadcrumb
property is_displayed

Overrides the Widget.is_displayed(). The difference is that if the view does not have the root locator, it assumes it is displayed.

Returns

bool

wait_for_result(timeout=60, delay=1)

Wait for invocation job to finish