def setUp(self):
        self.user, created = User.objects.get_or_create(
            username='******')
        self.user.cryptsum = bcrypt.encrypt('test', ident='2y')
        self.user.password = ''
        self.user.save()

        self.legacyauth = LegacyCoffeestatsAuth()
class LegacyCoffeestatsAuthTest(TestCase):
    def setUp(self):
        self.user, created = User.objects.get_or_create(
            username='******')
        self.user.cryptsum = bcrypt.encrypt('test', ident='2y')
        self.user.password = ''
        self.user.save()

        self.legacyauth = LegacyCoffeestatsAuth()

    def test_authenticate_nonexistant_user(self):
        self.assertIsNone(
            self.legacyauth.authenticate('nouser', 'doesntmatter'))

    def test_authenticate_user_with_wrong_password(self):
        self.assertIsNone(self.legacyauth.authenticate('testuser', 'wrong'))

    def test_authenticate_valid_user(self):
        loggedin = self.legacyauth.authenticate('testuser', 'test')

        self.assertIsNotNone(loggedin)
        self.assertEqual(loggedin.cryptsum, '')
        self.assertTrue(check_password('test', loggedin.password))

        self.assertEqual(self.legacyauth.get_user(loggedin.id), loggedin)

    def test_authenticate_only_works_once(self):
        """
        Check that subsequent authentication fails, because user has been
        migrated.
        """
        self.assertIsNotNone(
            self.legacyauth.authenticate('testuser', 'test'))
        self.assertIsNone(
            self.legacyauth.authenticate('testuser', 'test'))

    def test_get_nonexistent_user(self):
        self.assertIsNone(self.legacyauth.get_user(-10))

    def test_get_existant_user(self):
        self.assertEqual(self.legacyauth.get_user(self.user.id), self.user)