Exemple #1
0
    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"
Exemple #2
0
    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"
Exemple #3
0
    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")
Exemple #4
0
    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.")
Exemple #5
0
    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.")
Exemple #6
0
    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')
Exemple #7
0
    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")
Exemple #8
0
    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",
        )
Exemple #9
0
    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.")
Exemple #10
0
    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)
Exemple #11
0
    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",
        })
Exemple #12
0
    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)
Exemple #13
0
    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
        )
Exemple #14
0
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)
Exemple #15
0
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()
Exemple #16
0
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()
Exemple #17
0
 def __init__(self, request):
     self.request = request
     self.schema = schemas.RegisterSchema().bind(request=self.request)
     self.form = deform.Form(self.schema)