Пример #1
0
    def test_logo_is_empty_if_not_set(self, pyramid_request, org):
        org.logo = None
        ctrl = OrganizationEditController(org, pyramid_request)

        ctx = ctrl.read()

        assert ctx['form']['logo'] == ''
Пример #2
0
    def test_read_does_not_show_delete_button_for_default_org(self, pyramid_request, org):
        org.pubid = '__default__'
        ctrl = OrganizationEditController(org, pyramid_request)

        ctx = ctrl.read()

        assert ctx['delete_url'] is None
Пример #3
0
    def test_delete_redirects_to_org_list(self, matchers, org, pyramid_request):
        ctrl = OrganizationEditController(org, pyramid_request)

        response = ctrl.delete()

        list_url = pyramid_request.route_path('admin.organizations')
        assert response == matchers.Redirect302To(list_url)
Пример #4
0
    def test_delete_fails_if_org_has_groups(self, factories, matchers, org, pyramid_request):
        factories.Group(name='Test', organization=org)
        ctrl = OrganizationEditController(org, pyramid_request)

        ctx = ctrl.delete()

        assert org not in pyramid_request.db.deleted
        assert pyramid_request.response.status_int == 400
        pyramid_request.session.flash.assert_called_with(
            matchers.Regex('.*Cannot delete.*1 groups'), 'error')
        assert ctx['form'] == self._expected_form(org)
Пример #5
0
    def test_delete_fails_if_org_has_groups(self, factories, org,
                                            pyramid_request):
        factories.Group(name="Test", organization=org)
        ctrl = OrganizationEditController(org, pyramid_request)

        ctx = ctrl.delete()

        assert org not in pyramid_request.db.deleted
        assert pyramid_request.response.status_int == 400
        pyramid_request.session.flash.assert_called_with(
            Any.string.matching(".*Cannot delete.*1 groups"), "error")
        assert ctx["form"] == self._expected_form(org)
Пример #6
0
    def test_update_saves_org(self, pyramid_request, org, handle_form_submission):
        def call_on_success(request, form, on_success, on_failure):
            return on_success({'name': 'Updated name',
                               'authority': org.authority,
                               'logo': '<svg>new logo</svg>'})
        handle_form_submission.side_effect = call_on_success
        ctrl = OrganizationEditController(org, pyramid_request)

        ctx = ctrl.update()

        assert org.name == 'Updated name'
        assert org.logo == '<svg>new logo</svg>'
        assert ctx['form'] == self._expected_form(org)
Пример #7
0
    def test_update_saves_org(self, pyramid_request, org,
                              handle_form_submission):
        def call_on_success(request, form, on_success, on_failure):
            return on_success({
                "name": "Updated name",
                "authority": org.authority,
                "logo": "<svg>new logo</svg>",
            })

        handle_form_submission.side_effect = call_on_success
        ctrl = OrganizationEditController(org, pyramid_request)

        ctx = ctrl.update()

        assert org.name == "Updated name"
        assert org.logo == "<svg>new logo</svg>"
        assert ctx["form"] == self._expected_form(org)
Пример #8
0
 def get_controller():
     organization_context = OrganizationContext(
         request=pyramid_request, organization=organization)
     return OrganizationEditController(organization_context,
                                       pyramid_request)
Пример #9
0
 def test_read_shows_delete_button(self, pyramid_request, org):
     ctrl = OrganizationEditController(org, pyramid_request)
     ctx = ctrl.read()
     assert ctx['delete_url'] == pyramid_request.route_url('admin.organizations_delete', pubid=org.pubid)
Пример #10
0
 def test_read_presents_org(self, pyramid_request, org):
     ctrl = OrganizationEditController(org, pyramid_request)
     ctx = ctrl.read()
     assert ctx['form'] == self._expected_form(org)
Пример #11
0
 def test_delete_removes_org(self, pyramid_request, db_session, org):
     ctrl = OrganizationEditController(org, pyramid_request)
     ctrl.delete()
     assert org in db_session.deleted
Пример #12
0
 def get_controller():
     return OrganizationEditController(
         OrganizationContext(organization), pyramid_request
     )