Ejemplo n.º 1
0
def create_ticket(summary, custom_fields):
    ticket = Ticket(app_config_id=c.app.config._id,
                    ticket_num=1,
                    summary=summary,
                    custom_fields=custom_fields)
    session(ticket).flush()
    return ticket
Ejemplo n.º 2
0
 def test_ticket_num_required2(self):
     t = Ticket(summary='my ticket', ticket_num=12)
     try:
         t.ticket_num = None
     except schema.Invalid:
         pass
     else:
         raise AssertionError('Expected schema.Invalid to be thrown')
Ejemplo n.º 3
0
 def test_index(self):
     idx = Ticket(ticket_num=2,
                  summary="ticket2",
                  labels=["mylabel", "other"]).index()
     assert_equal(idx['summary_t'], 'ticket2')
     assert_equal(idx['labels_t'], 'mylabel other')
     assert_equal(idx['reported_by_s'], 'test-user')
     assert_equal(idx['assigned_to_s'], None)  # must exist at least
Ejemplo n.º 4
0
    def test_private_ticket(self):
        from pylons import c
        from allura.model import ProjectRole, User
        from allura.model import ACE, ALL_PERMISSIONS, DENY_ALL
        from allura.lib.security import Credentials, has_access
        from allura.websetup import bootstrap

        admin = c.user
        creator = bootstrap.create_user('Not a Project Admin')
        developer = bootstrap.create_user('Project Developer')
        observer = bootstrap.create_user('Random Non-Project User')
        anon = User(_id=None, username='******', display_name='Anonymous')
        t = Ticket(summary='my ticket',
                   ticket_num=3,
                   reported_by_id=creator._id)

        assert creator == t.reported_by
        role_admin = ProjectRole.by_name('Admin')._id
        role_developer = ProjectRole.by_name('Developer')._id
        role_creator = t.reported_by.project_role()._id
        developer.project_role().roles.append(role_developer)
        cred = Credentials.get().clear()

        t.private = True
        assert t.acl == [
            ACE.allow(role_developer, ALL_PERMISSIONS),
            ACE.allow(role_creator, ALL_PERMISSIONS), DENY_ALL
        ]
        assert has_access(t, 'read', user=admin)()
        assert has_access(t, 'create', user=admin)()
        assert has_access(t, 'update', user=admin)()
        assert has_access(t, 'read', user=creator)()
        assert has_access(t, 'create', user=creator)()
        assert has_access(t, 'update', user=creator)()
        assert has_access(t, 'read', user=developer)()
        assert has_access(t, 'create', user=developer)()
        assert has_access(t, 'update', user=developer)()
        assert not has_access(t, 'read', user=observer)()
        assert not has_access(t, 'create', user=observer)()
        assert not has_access(t, 'update', user=observer)()
        assert not has_access(t, 'read', user=anon)()
        assert not has_access(t, 'create', user=anon)()
        assert not has_access(t, 'update', user=anon)()

        t.private = False
        assert t.acl == []
        assert has_access(t, 'read', user=admin)()
        assert has_access(t, 'create', user=admin)()
        assert has_access(t, 'update', user=admin)()
        assert has_access(t, 'read', user=developer)()
        assert has_access(t, 'create', user=developer)()
        assert has_access(t, 'update', user=developer)()
        assert has_access(t, 'read', user=creator)()
        assert has_access(t, 'unmoderated_post', user=creator)()
        assert not has_access(t, 'create', user=creator)()
        assert not has_access(t, 'update', user=creator)()
        assert has_access(t, 'read', user=observer)()
        assert has_access(t, 'read', user=anon)()
Ejemplo n.º 5
0
 def test_comment_has_activity_access(self):
     t = Ticket(summary='ticket', ticket_num=666, deleted=True)
     p = t.discussion_thread.add_post(text='test post')
     assert_equal(p.status, 'ok')
     assert_true(p.has_activity_access('read', c.user, 'activity'))
     p.status = 'spam'
     assert_false(p.has_activity_access('read', c.user, 'activity'))
     p.status = 'pending'
     assert_false(p.has_activity_access('read', c.user, 'activity'))
     p.status = 'ok'
     p.deleted = True
     assert_false(p.has_activity_access('read', c.user, 'activity'))
Ejemplo n.º 6
0
 def test_feed(self):
     t = Ticket(app_config_id=c.app.config._id,
                ticket_num=1,
                summary='test ticket',
                description='test description',
                created_date=datetime(2012, 10, 29, 9, 57, 21, 465000))
     assert_equal(t.created_date, datetime(2012, 10, 29, 9, 57, 21, 465000))
     f = Feed.post(t,
                   title=t.summary,
                   description=t.description,
                   pubdate=t.created_date)
     assert_equal(f.pubdate, datetime(2012, 10, 29, 9, 57, 21, 465000))
     assert_equal(f.title, 'test ticket')
     assert_equal(
         f.description,
         '<div class="markdown_content"><p>test description</p></div>')
Ejemplo n.º 7
0
 def test_has_activity_access(self):
     t = Ticket(summary='ticket', ticket_num=666)
     assert_true(t.has_activity_access('read', c.user, 'activity'))
     t.deleted = True
     assert_false(t.has_activity_access('read', c.user, 'activity'))
Ejemplo n.º 8
0
 def test_activity_extras(self):
     t = Ticket(summary='my ticket', ticket_num=12)
     assert_in('allura_id', t.activity_extras)
     assert_equal(t.activity_extras['summary'], t.summary)
Ejemplo n.º 9
0
 def test_ticket_num_required(self):
     Ticket(summary='my ticket')
Ejemplo n.º 10
0
 def test_that_it_has_ordered_custom_fields(self):
     custom_fields = dict(my_field='my value')
     Ticket(summary='my ticket', custom_fields=custom_fields, ticket_num=3)
     ThreadLocalORMSession.flush_all()
     ticket = Ticket.query.get(summary='my ticket')
     assert ticket.custom_fields == dict(my_field='my value')
Ejemplo n.º 11
0
 def _test_ticket2():
     return Ticket(ticket_num=2, summary="ticket2", labels=["mylabel"])
Ejemplo n.º 12
0
 def _test_ticket():
     return Ticket(ticket_num=1, summary="ticket1", labels=["mylabel"])
Ejemplo n.º 13
0
    def test_private_ticket(self):
        from allura.model import ProjectRole
        from allura.model import ACE, DENY_ALL
        from allura.lib.security import Credentials, has_access
        from allura.websetup import bootstrap

        admin = c.user
        creator = bootstrap.create_user('Not a Project Admin')
        developer = bootstrap.create_user('Project Developer')
        observer = bootstrap.create_user('Random Non-Project User')
        anon = User(_id=None, username='******',
                    display_name='Anonymous')
        t = Ticket(summary='my ticket', ticket_num=3,
                   reported_by_id=creator._id)

        assert creator == t.reported_by
        role_admin = ProjectRole.by_name('Admin')._id
        role_developer = ProjectRole.by_name('Developer')._id
        role_creator = ProjectRole.by_user(t.reported_by, upsert=True)._id
        ProjectRole.by_user(
            developer, upsert=True).roles.append(role_developer)
        ThreadLocalORMSession.flush_all()
        cred = Credentials.get().clear()

        t.private = True
        assert_equal(t.acl, [
            ACE.allow(role_developer, 'save_searches'),
            ACE.allow(role_developer, 'read'),
            ACE.allow(role_developer, 'create'),
            ACE.allow(role_developer, 'update'),
            ACE.allow(role_developer, 'unmoderated_post'),
            ACE.allow(role_developer, 'post'),
            ACE.allow(role_developer, 'moderate'),
            ACE.allow(role_developer, 'delete'),
            ACE.allow(role_creator, 'read'),
            ACE.allow(role_creator, 'post'),
            ACE.allow(role_creator, 'create'),
            ACE.allow(role_creator, 'unmoderated_post'),
            DENY_ALL])
        assert has_access(t, 'read', user=admin)()
        assert has_access(t, 'create', user=admin)()
        assert has_access(t, 'update', user=admin)()
        assert has_access(t, 'read', user=creator)()
        assert has_access(t, 'post', user=creator)()
        assert has_access(t, 'unmoderated_post', user=creator)()
        assert has_access(t, 'create', user=creator)()
        assert not has_access(t, 'update', user=creator)()
        assert has_access(t, 'read', user=developer)()
        assert has_access(t, 'create', user=developer)()
        assert has_access(t, 'update', user=developer)()
        assert not has_access(t, 'read', user=observer)()
        assert not has_access(t, 'create', user=observer)()
        assert not has_access(t, 'update', user=observer)()
        assert not has_access(t, 'read', user=anon)()
        assert not has_access(t, 'create', user=anon)()
        assert not has_access(t, 'update', user=anon)()

        t.private = False
        assert t.acl == []
        assert has_access(t, 'read', user=admin)()
        assert has_access(t, 'create', user=admin)()
        assert has_access(t, 'update', user=admin)()
        assert has_access(t, 'read', user=developer)()
        assert has_access(t, 'create', user=developer)()
        assert has_access(t, 'update', user=developer)()
        assert has_access(t, 'read', user=creator)()
        assert has_access(t, 'unmoderated_post', user=creator)()
        assert has_access(t, 'create', user=creator)()
        assert not has_access(t, 'update', user=creator)()
        assert has_access(t, 'read', user=observer)()
        assert has_access(t, 'read', user=anon)()