def test_it_is_invalid_with_false_privacy_accepted(self, pyramid_request): schema = schemas.RegisterSchema().bind(request=pyramid_request) with pytest.raises(colander.Invalid) as exc: schema.deserialize({"privacy_accepted": 'false'}) assert exc.value.asdict()['privacy_accepted'] == "Acceptance of the privacy policy is required"
def test_it_is_invalid_when_privacy_accepted_missing(self, pyramid_request): schema = schemas.RegisterSchema().bind(request=pyramid_request) with pytest.raises(colander.Invalid) as exc: schema.deserialize({}) assert exc.value.asdict()["privacy_accepted"] == "Required"
def test_it_is_invalid_when_password_too_short(self, pyramid_request): schema = schemas.RegisterSchema().bind(request=pyramid_request) with pytest.raises(colander.Invalid) as exc: schema.deserialize({"password": "******"}) assert exc.value.asdict()['password'] == ( "Shorter than minimum length 2")
def test_it_is_invalid_when_username_too_long(self, pyramid_request, user_model): schema = schemas.RegisterSchema().bind(request=pyramid_request) user_model.get_by_username.return_value = None with pytest.raises(colander.Invalid) as exc: schema.deserialize({"username": "******" * 500}) assert exc.value.asdict()["username"] == ("Must be 30 characters or less.")
def test_it_is_invalid_when_password_too_short(self, pyramid_request): schema = schemas.RegisterSchema().bind(request=pyramid_request) with pytest.raises(colander.Invalid) as exc: schema.deserialize({"password": "******"}) assert exc.value.asdict()['password'] == ( "Must be 2 characters or more.")
def __init__(self, request): self.request = request self.schema = schemas.RegisterSchema().bind(request=self.request) self.form = request.create_form(self.schema, buttons=(deform.Button(title=_('Sign up'), css_class='js-signup-btn'),), css_class='js-signup-form')
def test_it_is_invalid_when_username_too_long(self, pyramid_request, user_model): schema = schemas.RegisterSchema().bind(request=pyramid_request) user_model.get_by_username.return_value = None with pytest.raises(colander.Invalid) as exc: schema.deserialize({"username": "******" * 500}) assert exc.value.asdict()['username'] == ( "Longer than maximum length 30")
def __init__(self, request): self.request = request self.schema = schemas.RegisterSchema().bind(request=self.request) self.form = request.create_form( self.schema, buttons=(deform.Button(title=_("Sign up")),), css_class="js-disable-on-submit", )
def test_it_is_invalid_with_invalid_characters_in_username( self, pyramid_request, user_model): user_model.get_by_username.return_value = None schema = schemas.RegisterSchema().bind(request=pyramid_request) with pytest.raises(colander.Invalid) as exc: schema.deserialize({"username": "******"}) assert exc.value.asdict()['username'] == ("Must have only letters, " "numbers, periods, and " "underscores.")
def __init__(self, request): tos_link = ('<a href="/terms-of-service">' + _('Terms of Service') + '</a>') form_footer = _('You are agreeing to be bound by ' 'our {tos_link}.').format(tos_link=tos_link) self.request = request self.schema = schemas.RegisterSchema().bind(request=self.request) self.form = deform.Form(self.schema, buttons=(_('Sign up'), ), footer=form_footer)
def test_it_validates_with_valid_payload(self, pyramid_csrf_request, user_model): user_model.get_by_username.return_value = None user_model.get_by_email.return_value = None schema = schemas.RegisterSchema().bind(request=pyramid_csrf_request) schema.deserialize({ "username": "******", "email": "*****@*****.**", "password": "******", "privacy_accepted": "true", })
def __init__(self, request): tos_link = ('<a class="link" href="/terms-of-service">' + _('Terms of Service') + '</a>') cg_link = ('<a class="link" href="/community-guidelines">' + _('Community Guidelines') + '</a>') form_footer = _('You are agreeing to our {tos_link} and ' '{cg_link}.').format(tos_link=tos_link, cg_link=cg_link) self.request = request self.schema = schemas.RegisterSchema().bind(request=self.request) self.form = request.create_form(self.schema, buttons=(_('Sign up'), ), footer=form_footer)
def test_it_validates_with_valid_payload(self, pyramid_csrf_request, user_model): user_model.get_by_username.return_value = None user_model.get_by_email.return_value = None schema = schemas.RegisterSchema().bind(request=pyramid_csrf_request) params = { "username": "******", "email": "*****@*****.**", "password": "******", "privacy_accepted": "true", } result = schema.deserialize(params) assert result == dict( params, privacy_accepted=True, comms_opt_in=None, csrf_token=None )
def register_controller_init_patch(self, request): tos_link = ('<a href="/terms-of-service">' + _('Terms of Service') + '</a>') cg_link = ('<a href="/community-guidelines">' + _('Community Guidelines') + '</a>') privacy_link = ('<a href="/privacy-policy">' + _('Privacy Policy') + '</a>') form_footer = _('You are agreeing to be bound by our {tos_link}, ' '{cg_link} and {privacy_link}.').format( tos_link=tos_link, cg_link=cg_link, privacy_link=privacy_link) self.request = request self.schema = schemas.RegisterSchema().bind(request=self.request) self.form = deform.Form(self.schema, buttons=(_('Sign up'), ), footer=form_footer)
def test_RegisterSchema_with_password_too_short(user_model): schema = schemas.RegisterSchema().bind(request=DummyRequest()) with pytest.raises(colander.Invalid) as exc: schema.deserialize({"password": "******"}) assert "password" in exc.value.asdict()
def test_RegisterSchema_with_username_too_short(user_model): schema = schemas.RegisterSchema().bind(request=DummyRequest()) with pytest.raises(colander.Invalid) as err: schema.deserialize({"username": "******"}) assert "username" in err.value.asdict()
def __init__(self, request): self.request = request self.schema = schemas.RegisterSchema().bind(request=self.request) self.form = deform.Form(self.schema)