def getOrCreateForStudent(student): """Gets or creates the ranking object for the student. Args: student: GCIProfile entity representing the student. """ q = GCIStudentRanking.all() q.filter('student', student) ranking = q.get() if not ranking: # create a new one ranking = GCIStudentRanking(program=student.scope, student=student) ranking.put() return ranking
def testGetOrCreateForStudent(self): """Tests if an appropriate ranking object is created for a student. """ #There is no GCIStudentRanking object for self.student in the datastore. #Hence, a new entity should be created and returned. q = GCIStudentRanking.all() q.filter('student', self.student) ranking = q.get() self.assertEqual(ranking, None) actual_ranking = ranking_logic.getOrCreateForStudent(self.student) q = GCIStudentRanking.all() q.filter('student', self.student) expected_ranking = q.get() self.assertEqual(expected_ranking.key(), actual_ranking.key()) #GCIStudentRanking object already exists for a student. student = GCIProfileHelper( self.program, False).createOtherUser('*****@*****.**').createStudent() ranking = GCIStudentRanking(program=student.scope, student=student) ranking.put() actual_ranking = ranking_logic.getOrCreateForStudent(student) self.assertEqual(ranking.key(), actual_ranking.key())
def testGetOrCreateForStudent(self): """Tests if an appropriate ranking object is created for a student. """ #There is no GCIStudentRanking object for self.student in the datastore. #Hence, a new entity should be created and returned. q = GCIStudentRanking.all() q.filter('student', self.student) ranking = q.get() self.assertEqual(ranking, None) actual_ranking = ranking_logic.getOrCreateForStudent(self.student) q = GCIStudentRanking.all() q.filter('student', self.student) expected_ranking = q.get() self.assertEqual(expected_ranking.key(), actual_ranking.key()) #GCIStudentRanking object already exists for a student. student = GCIProfileHelper(self.program, False).createOtherUser( '*****@*****.**').createStudent() ranking = GCIStudentRanking(program=student.scope, student=student) ranking.put() actual_ranking = ranking_logic.getOrCreateForStudent(student) self.assertEqual(ranking.key(), actual_ranking.key())