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'] == ''
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
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)
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)
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)
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)
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)
def get_controller(): organization_context = OrganizationContext( request=pyramid_request, organization=organization) return OrganizationEditController(organization_context, pyramid_request)
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)
def test_read_presents_org(self, pyramid_request, org): ctrl = OrganizationEditController(org, pyramid_request) ctx = ctrl.read() assert ctx['form'] == self._expected_form(org)
def test_delete_removes_org(self, pyramid_request, db_session, org): ctrl = OrganizationEditController(org, pyramid_request) ctrl.delete() assert org in db_session.deleted
def get_controller(): return OrganizationEditController( OrganizationContext(organization), pyramid_request )