[Freeipa-devel] [PATCHES] 0072-0074 Add automember rebuild membership to the web UI

Petr Vobornik pvoborni at redhat.com
Fri Sep 27 14:38:59 UTC 2013


On 09/25/2013 11:51 AM, Ana Krivokapic wrote:
> Hello,
>
> This patch set addresses ticket https://fedorahosted.org/freeipa/ticket/3928.
>
> Patch 0072 hooks the new automember-rebuild command to the web UI (user and host
> pages).
> Patch 0073 adds some fixes to the web UI test driver, which are necessary for
> patch 0074.
> Patch 0074 adds web UI integration tests for the new feature.
>
> The patch set applies on top of my patches 0068-0071
>

patch 72: Me, Ana and Kyle discussed position of the actions and the 
decision was to move them to action list.

`ipa automember-rebuild --type=hostgroup` can't be run from UI (already 
discussed with Ana as well)

I'm thinking about adding/creating refresh facet policies for this 
action so that appropriate facet would be marked as dirty and therefore 
refreshed so user would not have click association facet refresh button.

patch 73: Looks OK but some changes might not be needed.

patch 74: I would use different methods for certain actions to be 
consistent with other tests and to make the test more robust against Web 
UI refactoring:

1.
> self.click_on_link('Refresh')

For buttons in .facet-controls use rather 
`self.facet_button_click('refresh')` where 'refresh' is the button name, 
not text.

2.
> self.add_record(
>             'automember',
>             {'pkey': 'webservers', 'add': [
>                 ('selectbox', 'key', 'fqdn'),
>                 ('textbox', 'automemberinclusiveregex', '^web[1-9]+')
>             ]},
>             facet='hostgrouprule',
>             facet_btn_css_class='widget',
>             navigate=False
>         )

use `add_table_record('automemberinclusiveregex', data, parent)`. 
Example in test_dns.py:94.

3. A nitpick(or not even that): When working on one entity, I would 
rather use `navigate_by_breadcrumb('link text') instead of direct 
`navigate_to_record` call which changes url. It resembles user's 
behavior more. But it depends on situation. Ie. when I'm on hostgroup 
page and want to go to host search page, but the last host page was some 
details or association I may just use `navigate_to_entity('host',
'search'). Anyway, the important thing is to avoid navigating to the 
same url twice in a row - IE10 does not like that.

4. Do not use `wait(1)` for AJAX calls. The test will fail if there is 
bigger delay. User rather `wait_for_request(n=X)` where X is number of 
AJAX calls you want to wait for.

5. Instead of `click_on_link('Rebuild auto membership')` you should use 
`action_panel_action(panel_name, action)` There is also similar call for
executing action list action: `action_list_action(action_name)`.

6. Nitpick: you can reduce the cleanup code:
> self.navigate_by_menu('identity/host')
> self.delete('host', [{'pkey': host1}])
> self.delete('host', [{'pkey': host2}])

Can be written as:

     self.delete('host', [{'pkey': host1}, {'pkey': host2}])

or
     self.navigate_by_menu('identity/host')
     self.delete_record('host', [host1, host2])

`delete` is basically a shortcut for `navigate_to_entity` and 
`delete_record` with CRUD data format.
-- 
Petr Vobornik




More information about the Freeipa-devel mailing list