def test_tag_form_exists(self, render): """ Detail page should have a form for adding tags. """ idea = models.Idea(creator=random_user(), title='AAAA', state = models.State.objects.get(name='Active')) idea.save() views.detail(mock_req(), str(idea.id)) context = render.call_args[0][2] self.assertTrue('tag_form' in context) self.assertTrue(isinstance(context['tag_form'], IdeaTagForm))
def test_edit_idea_tag(self): """ Check that adding a new idea allows the associated tag to be immediately searchable. """ idea = models.Idea(creator=random_user(), title='title', state = models.State.objects.get(name='Active')) idea.save() results = backend.SearchBackend().search('example_tag') self.assertEqual(0, results['hits']) req = RequestFactory().post('/', {'tags': 'example_tag'}) req.user = random_user() views.detail(req, str(idea.id)) results = backend.SearchBackend().search('example_tag') self.assertEqual(1, results['hits'])
def test_edit_idea_tag(self): """ Check that adding a new idea allows the associated tag to be immediately searchable. """ idea = models.Idea(creator=random_user(), title='title', state=models.State.objects.get(name='Active')) idea.save() results = backend.SearchBackend().search('example_tag') self.assertEqual(0, results['hits']) req = RequestFactory().post('/', {'tags': 'example_tag'}) req.user = random_user() views.detail(req, str(idea.id)) results = backend.SearchBackend().search('example_tag') self.assertEqual(1, results['hits'])
def test_idea_no_support(self, render): """ Check support = False if no votes. """ user = random_user() state = models.State.objects.get(name='Active') idea = models.Idea(creator=user, title='title', text='text', state=state) idea.save() for _ in range(7): models.Vote(creator=random_user(), idea=idea).save() views.detail(mock_req(), str(idea.id)) context = render.call_args[0][2] self.assertTrue('support' in context) self.assertFalse(context['support'])
def test_idea_correct(self, render): """ The idea passed to the ui should be that identified by the id. """ user = get_user_model().objects.create_user('example') state = models.State.objects.get(name='Active') idea1 = models.Idea(creator=user, title='title', text='text', state=state) idea2 = models.Idea(creator=user, title='title', text='text', state=state) idea1.save() idea2.save() views.detail(mock_req(), str(idea2.id)) context = render.call_args[0][2] self.assertTrue('idea' in context) self.assertEqual(idea2.id, context['idea'].id) self.assertEqual(idea2.title, context['idea'].title)
def test_tag_form_submission(self): """ Detail page tag form submission should add tags. """ idea = models.Idea(creator=random_user(), title='AAAA', state = models.State.objects.get(name='Active')) idea.save() idea.tags.add('aaa', 'bbb', 'ccc') req = RequestFactory().post('/', {'tags': 'DDD, EEE, ZZZ,'}) req.user = random_user() views.detail(req, str(idea.id)) idea = models.Idea.objects.get(id = idea.id) tags = set([tag.name for tag in idea.tags.all()]) self.assertEqual(set(['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'zzz']), tags)
def test_tag_form_submission(self): """ Detail page tag form submission should add tags. """ idea = models.Idea(creator=random_user(), title='AAAA', state=models.State.objects.get(name='Active')) idea.save() idea.tags.add('aaa', 'bbb', 'ccc') req = RequestFactory().post('/', {'tags': 'DDD, EEE, ZZZ,'}) req.user = random_user() views.detail(req, str(idea.id)) idea = models.Idea.objects.get(id=idea.id) tags = set([tag.name for tag in idea.tags.all()]) self.assertEqual(set(['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'zzz']), tags)
def test_idea_correct(self, render): """ The idea passed to the ui should be that identified by the id. """ user = User.objects.create_user('example') state = models.State.objects.get(name='Active') idea1 = models.Idea(creator=user, title='title', text='text', state=state) idea2 = models.Idea(creator=user, title='title', text='text', state=state) idea1.save() idea2.save() views.detail(mock_req(), str(idea2.id)) context = render.call_args[0][2] self.assertTrue('idea' in context) self.assertEqual(idea2.id, context['idea'].id) self.assertEqual(idea2.title, context['idea'].title)
def test_tags(self, render): """ Include a sorted list of tags for this idea. """ user = random_user() state = models.State.objects.get(name='Active') idea = models.Idea(creator=user, title='title', text='text', state=state) idea.save() tags = [str(random.randint(11111, 99999)) for _ in range(20)] idea.tags.add(*tags) views.detail(mock_req(), str(idea.id)) context = render.call_args[0][2] self.assertTrue('tags' in context) self.assertEqual(20, len(context['tags'])) tags.sort() self.assertEqual(tags, [tag.name for tag in context['tags']])
def test_idea_voters(self, render): """ The idea passed to the ui should have the correct voters. """ user = get_user_model().objects.create_user('example') state = models.State.objects.get(name='Active') idea = models.Idea(creator=user, title='title', text='text', state=state) idea.save() users = [] for i in range(5): users.append(get_user_model().objects.create_user('example' + str(i))) models.Vote(creator=users[i], idea=idea).save() views.detail(mock_req(), str(idea.id)) context = render.call_args[0][2] self.assertTrue('voters' in context) self.assertEqual(5, len(context['voters'])) self.assertEqual(set([u.id for u in users]), set([v.id for v in context['voters']]))
def test_idea_voters(self, render): """ The idea passed to the ui should have the correct voters. """ user = User.objects.create_user('example') state = models.State.objects.get(name='Active') idea = models.Idea(creator=user, title='title', text='text', state=state) idea.save() users = [] for i in range(5): users.append(User.objects.create_user('example' + str(i))) models.Vote(creator=users[i], idea=idea).save() views.detail(mock_req(), str(idea.id)) context = render.call_args[0][2] self.assertTrue('voters' in context) self.assertEqual(5, len(context['voters'])) self.assertEqual(set([u.id for u in users]), set([v.id for v in context['voters']]))