37 |
37 |
from django_rbac.models import VIEW_OP
|
38 |
38 |
from django_rbac.utils import get_operation
|
39 |
39 |
|
40 |
|
from .utils import assert_event, get_link_from_mail, login, request_select2
|
|
40 |
from .utils import assert_event, get_link_from_mail, login, request_select2, text_content
|
41 |
41 |
|
42 |
42 |
pytestmark = pytest.mark.django_db
|
43 |
43 |
|
... | ... | |
795 |
795 |
def test_manager_ou(app, superuser_or_admin, ou1):
|
796 |
796 |
manager_home_page = login(app, superuser_or_admin, reverse('a2-manager-homepage'))
|
797 |
797 |
ou_homepage = manager_home_page.click(href='organizational-units')
|
798 |
|
assert {e.text for e in ou_homepage.pyquery('td.name')} == {'OU1', 'Default organizational unit'}
|
|
798 |
assert {text_content(e) for e in ou_homepage.pyquery('td.name')} == {'OU1', 'Default organizational unit'}
|
799 |
799 |
assert [x.text for x in ou_homepage.pyquery('td.slug')] == ['default', 'ou1']
|
800 |
800 |
|
801 |
801 |
# add a new ou
|
... | ... | |
804 |
804 |
add_ou_page.form.set('default', True)
|
805 |
805 |
ou_homepage = add_ou_page.form.submit().follow()
|
806 |
806 |
ou2 = OU.objects.get(name='ou2')
|
807 |
|
assert {e.text for e in ou_homepage.pyquery('td.name')} == {'OU1', 'Default organizational unit', 'ou2'}
|
|
807 |
assert {text_content(e) for e in ou_homepage.pyquery('td.name')} == {
|
|
808 |
'OU1',
|
|
809 |
'Default organizational unit',
|
|
810 |
'ou2',
|
|
811 |
}
|
808 |
812 |
assert len(ou_homepage.pyquery('tr[data-pk="%s"] td.default span.true' % ou2.pk)) == 1
|
809 |
|
assert len(ou_homepage.pyquery('tr[data-url="%s"] td.default span.true' % ou2.get_absolute_url())) == 1
|
|
813 |
assert len(ou_homepage.pyquery('tr td a[href="%s"]' % ou2.get_absolute_url())) == 1
|
810 |
814 |
|
811 |
815 |
# FIXME: table lines are not clickable as they do not contain an anchor
|
812 |
816 |
# default ou cannot be deleted
|
... | ... | |
817 |
821 |
ou1_detail_page = app.get(reverse('a2-manager-ou-detail', kwargs={'pk': ou1.pk}))
|
818 |
822 |
ou1_delete_page = ou1_detail_page.click('Delete')
|
819 |
823 |
ou_homepage = ou1_delete_page.form.submit().follow()
|
820 |
|
assert {e.text for e in ou_homepage.pyquery('td.name')} == {'Default organizational unit', 'ou2'}
|
|
824 |
assert {text_content(e) for e in ou_homepage.pyquery('td.name')} == {'Default organizational unit', 'ou2'}
|
821 |
825 |
|
822 |
826 |
# remake old default ou the default one
|
823 |
827 |
old_default = OU.objects.get(name__contains='Default')
|
... | ... | |
830 |
834 |
assert old_default_detail_page.pyquery('input[name="default"][checked="checked"]')
|
831 |
835 |
# check ou homepage has changed too
|
832 |
836 |
ou_homepage = old_default_detail_page.click('Organizational unit')
|
833 |
|
assert {e.text for e in ou_homepage.pyquery('td.name')} == {'Default organizational unit', 'ou2'}
|
|
837 |
assert {text_content(e) for e in ou_homepage.pyquery('td.name')} == {'Default organizational unit', 'ou2'}
|
834 |
838 |
assert len(ou_homepage.pyquery('span.true')) == 1
|
835 |
839 |
assert len(ou_homepage.pyquery('tr[data-pk="%s"] td.default span.true' % ou2.pk)) == 0
|
836 |
840 |
assert len(ou_homepage.pyquery('tr[data-pk="%s"] td.default span.true' % old_default.pk)) == 1
|
837 |
|
-
|