def test_tag_view(self): from shootout.views import tag_view from shootout.models import Tag self.config.testing_securitypolicy(u'username') self.config.include('shootout.addroutes') self.config.include(register_templates) user = self._addUser() tag1 = Tag(u'bar') tag2 = Tag(u'foo') self.session.add_all([tag1, tag2]) idea1 = self._addIdea(user=user) idea1.tags.append(tag1) idea2 = self._addIdea(user=user) idea2.tags.append(tag1) idea3 = self._addIdea(user=user) idea3.tags.append(tag2) self.session.flush() request = testing.DummyRequest() request.matchdict = {'tag_name': u'bar'} result = tag_view(request) ideas = result['ideas'].all() self.assertEqual(ideas[0].idea_id, idea1.idea_id) self.assertEqual(ideas[1].idea_id, idea2.idea_id) self.assertEqual(result['tag'], u'bar') request = testing.DummyRequest() request.matchdict = {'tag_name': u'foo'} result = tag_view(request) self.assertEqual(result['ideas'].one().idea_id, idea3.idea_id) self.assertEqual(result['tag'], u'foo')
def create_tags(cls, tags_string): tags_list = cls.extract_tags(tags_string) tags = [] for tag_name in tags_list: tag = cls.get_by_name(tag_name) if not tag: tag = Tag(name=tag_name) DBSession.add(tag) tags.append(tag) return tags