예제 #1
0
class QuestionTests(base.ExtendedTestCase):
    def setUp(self):
        super(QuestionTests, self).setUp()
        self.boragle = Boragle(name='test1', slugs = ['t1'], desc = 'desc', creator = self.creator)
        self.boragle.put()
        self.avatar = Avatar(boragle = self.boragle, creator = self.creator)
        self.avatar.put()
        self.question = Question(boragle = self.boragle, text = "why ?", creator = self.avatar)
        self.question.put()
        
    def test_creation(self):
        self.app.post('/t1/ask', dict(text = 'why? why? why?', details = 'simply, maybe'))
        question = Question.find_by_slug('why-why-why')
        self.assertTrue(question)
        self.assertEqual("why? why? why?",question.text)
        self.assertEqual("simply, maybe",question.details)
        self.assertEqual(self.creator.name,question.creator.creator.name)
    

    def test_creation_security(self):
        self.logout()
        self.app.post('/t1/ask', dict(text = 'why? why? why?', details = 'simply, maybe'), 
                status = 403)
        
    def test_answering_question(self):
        self.app.post(self.question.url, dict(answer = 'zimbly'))
        question = Question.get(self.question.key())
        self.assertEqual('zimbly', question.answers[0].text)
        self.assertEqual(self.creator.name, question.answers[0].creator.name)
        self.assertEqual(1, question.answer_count)
        
    def test_answering_question_security(self):
        self.logout()
        self.app.post(self.question.url, dict(answer = 'zimbly'), status = 403)
    
    def test_smoke_question_page(self):
        self.app.get(self.question.url)
    
    def test_voting_security(self):
        answer = Answer.create(question = self.question, text= 'fake answer', creator = self.avatar)
        self.app.get(answer.voting_url+'/up', status = 302)
        answer = Answer.get(answer.key())
        self.assertEqual(answer.vote_count, 1)
        self.logout()
        self.app.get(answer.voting_url+'/down', status = 302)
        answer = Answer.get(answer.key())
        self.assertEqual(answer.vote_count, 1)        
        
    
    def test_voting_up(self):
        answer = Answer.create(question = self.question, text= 'fake answer', creator = self.avatar)
        self.app.get(answer.voting_url+'/up', status = 302)
        answer = Answer.get(answer.key())
        self.assertEqual(answer.vote_count,1)
        self.app.get(answer.voting_url+'/down', status = 302)
        answer = Answer.get(answer.key())
        self.assertEqual(answer.vote_count,-1)
        
        
        
예제 #2
0
 def test_find_from_find_or_create(self):
     boragle = self.make_boragle()
     avatar = Avatar(boragle = boragle, creator = self.creator)
     avatar.put()
     
     creator2 = Creator(user = users.User('*****@*****.**'))
     creator2.put()
     avatar2 = Avatar(boragle = boragle, creator = creator2)
     avatar2.put()
     
     avatar_from_db = Avatar.find_or_create(boragle = boragle, creator = self.creator)
     self.assertEqual(avatar.key(),avatar_from_db.key())
     
     avatar_from_db = Avatar.find_or_create(boragle = boragle, creator = creator2)
     self.assertEqual(avatar2.key(),avatar_from_db.key())
예제 #3
0
 def test_avatar_delegates_property_getters(self):
     avatar = Avatar(boragle = self.make_boragle(), creator = self.creator)
     avatar.put()
     self.assertEqual(avatar.name,self.creator.name)
     self.assertEqual(avatar.email,self.creator.email)
     self.assertEqual(avatar.url,self.creator.url)