airgun.views.contentviewfilter

Module Contents

Classes

CVFRuleActions

'Actions' column for content view filter rules. Can contain either

CVFRuleVersion

'Version' column for content view filter rule. Depending on type (e.g.

CVFEditableEntry

Content view filter variant of Editable Entry, main difference of which

AffectedRepositoriesTab

Affected repositories tab contains repositories count inside tab title,

ContentViewFiltersView

Base view for Satellite pages

CreateYumFilterView

Base view for Satellite pages

EditYumFilterView

Base view for Satellite pages

Attributes

ACTIONS_COLUMN

airgun.views.contentviewfilter.ACTIONS_COLUMN = 4
class airgun.views.contentviewfilter.CVFRuleActions(parent, logger=None, **kwargs)

‘Actions’ column for content view filter rules. Can contain either ‘Edit’ button or ‘Save’ and ‘Cancel’.

edit
save
cancel
class airgun.views.contentviewfilter.CVFRuleVersion(parent, logger=None, **kwargs)

‘Version’ column for content view filter rule. Depending on type (e.g. ‘Equal To’, ‘Greater Than’ etc) can have different set of inputs.

class all_versions(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.

class equal_to(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.

version
class greater_than(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.

min_version
class less_than(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.

max_version
class range(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.

min_version
max_version
rule_type
rule
version_text
fill(values)

Custom fill to support passing values for all inputs in single tuple without the need to specify specific input name.

Parameters

values (tuple) – tuple containing values for specific version type and its inputs, e.g. (‘Equal To’, ‘0.5’) or (‘Range’, ‘4.1’, ‘4.6’)

read()

Custom read to return “summary” text value, not the dict with every included widget separately.

class airgun.views.contentviewfilter.CVFEditableEntry(parent, locator=None, name=None, logger=None)

Content view filter variant of Editable Entry, main difference of which is span tags instead of dd and dt.

class airgun.views.contentviewfilter.AffectedRepositoriesTab(parent, logger=None, **kwargs)

Affected repositories tab contains repositories count inside tab title, making it impossible to rely on exact string value. Using starts-with instead.

TAB_NAME = Affected Repositories
TAB_LOCATOR
class airgun.views.contentviewfilter.ContentViewFiltersView(parent, logger=None, **kwargs)

Base view for Satellite pages

breadcrumb
new_filter
remove_selected
table
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.contentviewfilter.CreateYumFilterView(parent, logger=None, **kwargs)

Base view for Satellite pages

breadcrumb
name
content_type
inclusion_type
description
save
cancel
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.contentviewfilter.EditYumFilterView(parent, logger=None, **kwargs)

Base view for Satellite pages

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

Secondary level Tab, typically ‘List/Remove’ or ‘Add’ sub-tab inside some primary tab.

Usage:

@View.nested
class listremove(SatSecondaryTab):
    TAB_NAME = 'List/Remove'
name
description
class rpm_filter(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.

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

Secondary level Tab, typically ‘List/Remove’ or ‘Add’ sub-tab inside some primary tab.

Usage:

@View.nested
class listremove(SatSecondaryTab):
    TAB_NAME = 'List/Remove'
TAB_NAME = RPMs
exclude_no_errata
add_rule
remove_rule
table
class errata_filter(parent, logger=None, **kwargs)

Combines both ‘Errata by ID’ and ‘Errata by date and type’ filters as they can’t be easily distinguished on UI. For ‘Errata by ID’ filter ‘Add’ and ‘List/Remove’ tabs are available, for ‘Errata by date and type’ - only ‘Erratum Date Range’ tab is displayed.

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

Secondary level Tab, typically ‘List/Remove’ or ‘Add’ sub-tab inside some primary tab.

Usage:

@View.nested
class listremove(SatSecondaryTab):
    TAB_NAME = 'List/Remove'
security
enhancement
bugfix
date_type
start_date
end_date
select_all
search(query=None, filters=None)

Custom search which supports all errata filters.

Parameters
  • query (str optional) – search query to type into search box. Optional as sometimes filtering is enough to find desired errata

  • filters (dict optional) – dictionary containing widget names and values to set (like with regular fill())

add(errata_id=None, filters=None)

Add specific errata to filter or all available if id not provided.

Parameters
  • errata_id (str optional) – ID of errata to add. If not provided - all available errata in table will be selected (especially useful together with filtering)

  • filters (dict optional) – dictionary containing widget names and values to set (like with regular fill())

fill(errata_id=None, filters=None)

Associate resource(s)

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

Secondary level Tab, typically ‘List/Remove’ or ‘Add’ sub-tab inside some primary tab.

Usage:

@View.nested
class listremove(SatSecondaryTab):
    TAB_NAME = 'List/Remove'
TAB_NAME = Erratum Date Range
security
enhancement
bugfix
date_type
start_date
end_date
save
cancel
after_fill(was_change)

A hook invoked after all the widgets were filled.

If it returns None, the was_changed in fill() does not change. If it returns a boolean, that boolean will be returned as was_changed.

Parameters

was_changebool signalizing whether the fill() changed anything,

add(errata_id=None, filters=None)
Add specific errata to filter or all available if id not

provided.

Parameters
  • errata_id (str optional) – ID of errata to add. If not provided - all available errata in table will be selected (especially useful together with filtering)

  • filters (dict optional) – dictionary containing widget names and values to set (like with regular fill())

read()

Read values from tabs depending on errata filter type (by id or daterange filter).

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

View which allows assigning/unassigning some resources to entity. Contains two secondary level tabs ‘List/Remove’ and ‘Add’ with tables allowing managing resources for entity.

Usage:

@View.nested
class resources(AddRemoveResourcesView): pass
class module_streams_filter(parent, logger=None, **kwargs)

View which allows assigning/unassigning some resources to entity. Contains two secondary level tabs ‘List/Remove’ and ‘Add’ with tables allowing managing resources for entity.

Usage:

@View.nested
class resources(AddRemoveResourcesView): pass
class affected_repositories(parent, logger=None, **kwargs)

Affected repositories tab contains repositories count inside tab title, making it impossible to rely on exact string value. Using starts-with instead.

filter_toggle
product_filter
searchbox
update_repositories
select_all
table
breadcrumb
filter_type
content_tabs
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