def test_get_content_states(self): """ To test content states we need to setup workflow and use real content types.""" from voteit.core.models.meeting import Meeting from voteit.core.models.agenda_item import AgendaItem self.config.include('pyramid_zcml') self.config.load_zcml('voteit.core:configure.zcml') meeting = Meeting() meeting.title = 'Hello Meeting' ai1 = AgendaItem() ai1.title = 'Stuff to do' ai2 = AgendaItem() ai2.title = 'More important things' meeting['ai1'] = ai1 meeting['ai2'] = ai2 meeting['b1'] = self._cut() self.assertEqual( meeting.get_content(sort_on='title', states='private'), (ai2, ai1)) self.assertEqual( meeting.get_content(sort_on='title', states=('private', 'upcoming')), (ai2, ai1)) request = testing.DummyRequest() ai1.set_workflow_state(request, 'upcoming') self.assertEqual( meeting.get_content(sort_on='title', states='private'), (ai2, )) self.assertEqual( meeting.get_content(sort_on='title', states=('private', 'some_other')), (ai2, )) self.assertEqual( meeting.get_content(sort_on='title', states=( 'private', 'upcoming', )), (ai2, ai1))
def test_get_content_by_interface(self): from voteit.core.models.meeting import Meeting from voteit.core.models.agenda_item import AgendaItem from voteit.core.models.interfaces import IAgendaItem from voteit.core.models.interfaces import IBaseContent meeting = Meeting() meeting['ai1'] = AgendaItem() meeting['ai2'] = AgendaItem() meeting['b1'] = self._cut() res = meeting.get_content(iface = IAgendaItem) self.assertEqual(len(res), 2) #IAgendaItem subclasses IBaseContent res = meeting.get_content(iface = IBaseContent) self.assertEqual(len(res), 3)
def test_get_content_specific_content_type(self): from voteit.core.models.meeting import Meeting from voteit.core.models.agenda_item import AgendaItem meeting = Meeting() meeting['ai1'] = AgendaItem() meeting['ai2'] = AgendaItem() meeting['b1'] = self._cut() res = meeting.get_content(content_type = 'AgendaItem') self.assertEqual(len(res), 2)
def test_get_content_states(self): """ To test content states we need to setup workflow and use real content types.""" from voteit.core.models.meeting import Meeting from voteit.core.models.agenda_item import AgendaItem self.config.include('pyramid_zcml') self.config.load_zcml('voteit.core:configure.zcml') meeting = Meeting() meeting.title = 'Hello Meeting' ai1 = AgendaItem() ai1.title = 'Stuff to do' ai2 = AgendaItem() ai2.title = 'More important things' meeting['ai1'] = ai1 meeting['ai2'] = ai2 meeting['b1'] = self._cut() self.assertEqual(meeting.get_content(sort_on = 'title', states='private'), (ai2, ai1)) self.assertEqual(meeting.get_content(sort_on = 'title', states=('private', 'upcoming')), (ai2, ai1)) request = testing.DummyRequest() ai1.set_workflow_state(request, 'upcoming') self.assertEqual(meeting.get_content(sort_on = 'title', states='private'), (ai2,)) self.assertEqual(meeting.get_content(sort_on = 'title', states=('private', 'some_other')), (ai2,)) self.assertEqual(meeting.get_content(sort_on = 'title', states=('private', 'upcoming',)), (ai2, ai1))