def test_user_exercise_preserved_after_consuming(self):
        # A user goes on as a phantom...
        phantom = UserData.insert_for("phantom", "phantom")
        exercises = [
            self.make_exercise("Adding 1"),
            self.make_exercise("Multiplication yo"),
            self.make_exercise("All about chickens"),
        ]

        # Does some exercises....
        for e in exercises:
            ue = phantom.get_or_insert_exercise(e)
            ue.total_done = 7
            ue.put()

        # Signs up!
        jimmy = UserData.insert_for("*****@*****.**",
                                    email="*****@*****.**")
        phantom.consume_identity(jimmy)

        # Make sure we can still see the old user exercises
        shouldbejimmy = UserData.get_from_user_id("*****@*****.**")
        user_exercises = (exercise_models.UserExercise.get_for_user_data(
            shouldbejimmy).fetch(100))
        self.assertEqual(len(exercises), len(user_exercises))
        for ue in user_exercises:
            self.assertEqual(7, ue.total_done)
    def test_user_exercise_preserved_after_consuming(self):
        # A user goes on as a phantom...
        phantom = UserData.insert_for("phantom", "phantom")
        exercises = [
                self.make_exercise("Adding 1"),
                self.make_exercise("Multiplication yo"),
                self.make_exercise("All about chickens"),
                ]

        # Does some exercises....
        for e in exercises:
            ue = phantom.get_or_insert_exercise(e)
            ue.total_done = 7
            ue.put()

        # Signs up!
        jimmy = UserData.insert_for("*****@*****.**",
                                    email="*****@*****.**")
        phantom.consume_identity(jimmy)

        # Make sure we can still see the old user exercises
        shouldbejimmy = UserData.get_from_user_id("*****@*****.**")
        user_exercises = (exercise_models.UserExercise.
                          get_for_user_data(shouldbejimmy).fetch(100))
        self.assertEqual(len(exercises), len(user_exercises))
        for ue in user_exercises:
            self.assertEqual(7, ue.total_done)
    def test_user_identity_consumption(self):
        superman = UserData.insert_for(
            "*****@*****.**",
            email="*****@*****.**",
            username="******",
            password="******",
            gender="male",
        )

        clark = UserData.insert_for(
            "*****@*****.**",
            email="*****@*****.**",
            username=None,
            password=None,
        )

        clark.consume_identity(superman)
        self.assertEqual("*****@*****.**", clark.user_id)
        self.assertEqual("*****@*****.**", clark.email)
        self.assertEqual(clark.key(),
                         UserData.get_from_username("superman").key())
        self.assertEqual(
            clark.key(),
            UserData.get_from_user_id("*****@*****.**").key())
        self.assertTrue(clark.validate_password("Password1"))
    def test_user_identity_consumption(self):
        superman = UserData.insert_for(
                "*****@*****.**",
                email="*****@*****.**",
                username="******",
                password="******",
                gender="male",
                )

        clark = UserData.insert_for(
                "*****@*****.**",
                email="*****@*****.**",
                username=None,
                password=None,
                )

        clark.consume_identity(superman)
        self.assertEqual("*****@*****.**", clark.user_id)
        self.assertEqual("*****@*****.**", clark.email)
        self.assertEqual(clark.key(),
                         UserData.get_from_username("superman").key())
        self.assertEqual(clark.key(),
                         UserData.get_from_user_id("*****@*****.**").key())
        self.assertTrue(clark.validate_password("Password1"))