Exemplo n.º 1
0
 def test_before(self):
     view = self.make()
     view.context.three = 3
     view.schema = Dummy()
     view.schema.children = [Dummy(name="three")]
     form = Dummy()
     view.before(form)
     assert form.appstruct == {"three": 3}
Exemplo n.º 2
0
    def test_workflow_reset_calls(self):
        objs = [Dummy(), Dummy()]

        with patch('kotti.workflow.get_workflow') as get_workflow:
            wf = get_workflow.return_value
            self.call(objs)
            assert wf.reset.call_count == 2
            assert wf.reset.call_args_list[0][0][0] is objs[0]
            assert wf.reset.call_args_list[1][0][0] is objs[1]
Exemplo n.º 3
0
 def test_avatar_url_request_user(self, db_session):
     api = self.make()
     api.request.user = Dummy(email="*****@*****.**")
     result = api.avatar_url()
     assert result.startswith(
         "https://secure.gravatar.com/avatar/" "d3aeefdd7afe103ab70875172135cab7"
     )
Exemplo n.º 4
0
    def test_send_set_password_add_query(self):
        from kotti.message import send_set_password

        user = Dummy(name=u'joe', email='*****@*****.**', title=u'Joe')
        send_set_password(user, DummyRequest(), add_query={'another': 'param'})

        assert self.mailer.send.called
        message = self.mailer.send.call_args[0][0]
        assert 'another=param' in message.body
Exemplo n.º 5
0
    def test_preserve_existing_headers(self):
        response = Dummy(
            headers={"cache-control": "max-age=17,s-max-age=42,foo,bar=42"})
        delta = datetime.timedelta(days=1)
        set_max_age(response, delta)

        assert "cache-control" in response.headers
        assert response.headers["cache-control"] == (
            "bar=42,foo,max-age=86400,s-max-age=42")
Exemplo n.º 6
0
    def test_send_set_password_other_template(self):
        from kotti.message import send_set_password

        user = Dummy(name=u'joe', email='*****@*****.**', title=u'Joe')
        send_set_password(user, DummyRequest(), templates='reset-password')

        assert self.mailer.send.called
        message = self.mailer.send.call_args[0][0]
        assert 'Reset your password' in message.subject
Exemplo n.º 7
0
    def test_email_set_password_other_template(self, db_session):
        from kotti.message import email_set_password

        user = Dummy(name=u'joe', email='*****@*****.**', title=u'Joe')
        email_set_password(
            user, DummyRequest(),
            template_name='kotti:templates/email-reset-password.pt')

        assert self.mailer.send.called
        message = self.mailer.send.call_args[0][0]
        assert message.subject.startswith('Reset your password')
Exemplo n.º 8
0
    def test_email_set_password_add_query(self, db_session):
        from kotti.message import email_set_password

        user = Dummy(name="joe", email="*****@*****.**", title="Joe")
        email_set_password(user,
                           DummyRequest(),
                           add_query={"another": "param"})

        assert self.mailer.send.called
        message = self.mailer.send.call_args[0][0]
        assert "another=param" in message.body
Exemplo n.º 9
0
    def test_email_set_password_basic(self, db_session):
        from kotti.message import email_set_password

        user = Dummy(name='joe', email='*****@*****.**', title='Joe')
        email_set_password(user, DummyRequest())

        assert hasattr(user, 'confirm_token')
        assert self.mailer.send.called
        message = self.mailer.send.call_args[0][0]
        assert 'Your registration' in message.subject
        assert 'Joe' in message.body
        assert 'Awesome site' in message.body
Exemplo n.º 10
0
    def test_email_set_password_basic(self, db_session):
        from kotti.message import email_set_password

        user = Dummy(name="joe", email="*****@*****.**", title="Joe")
        email_set_password(user, DummyRequest())

        assert hasattr(user, "confirm_token")
        assert self.mailer.send.called
        message = self.mailer.send.call_args[0][0]
        assert "Your registration" in message.subject
        assert "Joe" in message.body
        assert "Awesome site" in message.body
Exemplo n.º 11
0
    def test_workflow_callback_with_inheritance(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = "bar"
        info.workflow._state_data = {
            "next_state": {
                "role:me": "myfirstpermission mysecondpermission",
                "role:you": " \t yourpermission ",
                "inherit": "true",
            }
        }
        workflow_callback(context, info)

        assert sorted(context.__acl__) == [
            ("Allow", "role:me", "myfirstpermission"),
            ("Allow", "role:me", "mysecondpermission"),
            ("Allow", "role:you", "yourpermission"),
        ]
Exemplo n.º 12
0
    def test_workflow_callback(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = 'bar'
        info.workflow._state_data = {
            "next_state": {
                "role:me": "myfirstpermission mysecondpermission",
                "role:you": " \t yourpermission ",
                },
            }
        workflow_callback(context, info)

        self.assertEqual(sorted(context.__acl__), [
            ('Allow', 'role:me', 'myfirstpermission'),
            ('Allow', 'role:me', 'mysecondpermission'),
            ('Allow', 'role:you', 'yourpermission'),
            ('Deny', 'system.Everyone', ALL_PERMISSIONS),
            ])
Exemplo n.º 13
0
    def test_workflow_callback_with_inheritance(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = 'bar'
        info.workflow._state_data = {
            "next_state": {
                "role:me": "myfirstpermission mysecondpermission",
                "role:you": " \t yourpermission ",
                "inherit": "true",
                },
            }
        workflow_callback(context, info)

        self.assertEqual(sorted(context.__acl__), [
            ('Allow', 'role:me', 'myfirstpermission'),
            ('Allow', 'role:me', 'mysecondpermission'),
            ('Allow', 'role:you', 'yourpermission'),
            ])
Exemplo n.º 14
0
    def test_workflow_callback(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = "bar"
        info.workflow._state_data = {
            "next_state": {
                "role:me": "myfirstpermission mysecondpermission",
                "role:you": " \t yourpermission ",
            }
        }
        workflow_callback(context, info)

        assert sorted(context.__acl__) == [
            ("Allow", "role:me", "myfirstpermission"),
            ("Allow", "role:me", "mysecondpermission"),
            ("Allow", "role:you", "yourpermission"),
            ("Deny", "system.Everyone", ALL_PERMISSIONS),
        ]
Exemplo n.º 15
0
    def test_workflow_callback_event(self):
        from kotti.events import listeners
        from kotti.events import ObjectEvent
        from kotti.workflow import workflow_callback
        from kotti.workflow import WorkflowTransition

        events = []
        my_listener = lambda event: events.append(event)
        listeners[WorkflowTransition].append(my_listener)

        context = Dummy()
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = 'bar'
        info.workflow._state_data = {"next_state": {}}
        workflow_callback(context, info)

        self.assertEqual(len(events), 1)
        [event] = events
        self.assertEqual(event.object, context)
        self.assertEqual(event.info, info)
        assert isinstance(event, ObjectEvent)
Exemplo n.º 16
0
    def test_workflow_callback_event(self):
        from kotti.events import listeners
        from kotti.events import ObjectEvent
        from kotti.workflow import workflow_callback
        from kotti.workflow import WorkflowTransition

        events = []

        listeners[WorkflowTransition].append(lambda evt: events.append(evt))

        context = Dummy()
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = "bar"
        info.workflow._state_data = {"next_state": {}}
        workflow_callback(context, info)

        assert len(events) == 1
        [event] = events
        assert event.object is context
        assert event.info is info
        assert isinstance(event, ObjectEvent)
Exemplo n.º 17
0
    def test_send_set_password_other_template_entirely(self):
        from kotti.message import send_set_password

        user = Dummy(name=u'joe', email='*****@*****.**', title=u'Joe')
        send_set_password(user,
                          DummyRequest(),
                          templates=dict(
                              subject=u"Hey there %(user_title)s",
                              body=u"This is %(site_title)s speaking",
                          ))

        assert self.mailer.send.called
        message = self.mailer.send.call_args[0][0]
        assert message.subject == 'Hey there Joe'
        assert message.body == 'This is Awesome site speaking'
Exemplo n.º 18
0
 def test_reset_no_purge(self):
     dummy = Dummy(state='partying')
     self.call([dummy], purge_existing=False)
     assert dummy.state == 'partying'
Exemplo n.º 19
0
 def test_reset_purge_existing(self):
     dummy = Dummy(state='partying')
     self.call([dummy], purge_existing=True)
     assert dummy.state is None
Exemplo n.º 20
0
 def test_avatar_url(self, db_session):
     api = self.make()
     user = Dummy(email='*****@*****.**')
     result = api.avatar_url(user)
     assert result.startswith('https://secure.gravatar.com/avatar/'
                              'd3aeefdd7afe103ab70875172135cab7')
Exemplo n.º 21
0
    def test_init(self):
        from kotti.views.form import BaseFormView

        view = BaseFormView(Dummy(), DummyRequest(), more="args")
        assert view.more == "args"
Exemplo n.º 22
0
    def make(self):
        from kotti.views.form import BaseFormView

        return BaseFormView(Dummy(), DummyRequest())
Exemplo n.º 23
0
 def test_schema_has_fewer_children_than_attrs(self):
     context = Dummy(first="firstvalue", second="secondvalue")
     schema = Dummy(children=[Dummy(name="first")])
     assert self.call(context, schema) == {"first": "firstvalue"}
Exemplo n.º 24
0
 def test_none_converted_to_null(self):
     context = Dummy(first=None)
     schema = Dummy(children=[Dummy(name="first")])
     assert self.call(context, schema) == {"first": colander.null}
Exemplo n.º 25
0
 def test_avatar_url_request_user(self):
     api = self.make()
     api.request.user = Dummy(email='*****@*****.**')
     result = api.avatar_url()
     assert result.startswith('https://secure.gravatar.com/avatar/'
                              'd3aeefdd7afe103ab70875172135cab7')
Exemplo n.º 26
0
    def make(self):
        from kotti.views.form import EditFormView

        return EditFormView(Dummy(),
                            DummyRequest(),
                            success_url="http://localhost")
Exemplo n.º 27
0
 def test_schema_has_fewer_children_than_attrs(self):
     context = Dummy(first='firstvalue', second='secondvalue')
     schema = Dummy(children=[Dummy(name='first')])
     assert self.call(context, schema) == {'first': 'firstvalue'}
Exemplo n.º 28
0
 def test_reset_purge_existing(self, commit):
     dummy = Dummy(state="partying")
     self.call([dummy], purge_existing=True)
     assert dummy.state is None
Exemplo n.º 29
0
 def test_reset_no_purge(self, commit):
     dummy = Dummy(state="partying")
     self.call([dummy], purge_existing=False)
     assert dummy.state == "partying"
Exemplo n.º 30
0
 def test_find_name_uses_disambiguate_name(self, disambiguate_name):
     view = self.make()
     view.context['bar'] = Dummy()
     disambiguate_name.return_value = 'othername'
     assert view.find_name({'title': 'Bar'}) == 'othername'
     disambiguate_name.assert_called_with('bar')