def test_16_init_detail(self):
        db_token = Token.query.filter_by(serial=self.serial2).first()
        token = MotpTokenClass(db_token)
        token.add_init_details("otpkey", "11223344556677889900")
        token.add_user(User(login="******",
                            realm=self.realm1))
        token.save()
        self.assertEqual(token.token.owners.first().resolver, self.resolvername1)
        self.assertEqual(token.token.owners.first().user_id, "1000")

        user_object = token.user
        self.assertTrue(user_object.login == "cornelius",
                        user_object)
        self.assertTrue(user_object.resolver == self.resolvername1,
                        user_object)

        detail = token.get_init_detail()
        self.assertTrue("otpkey" in detail, detail)
        # but the otpkey must not be written to token.token.info (DB)
        # As this only writes the OTPkey to the internal init_details dict
        self.assertTrue("otpkey" not in token.token.get_info(),
                        token.token.get_info())

        # Now get the Token2 URL, which we only
        # get, if a user is specified.
        detail = token.get_init_detail(user=User("cornelius",
                                                 self.realm1))
        self.assertTrue("otpkey" in detail, detail)
        otpkey = detail.get("otpkey")
        self.assertTrue("img" in otpkey, otpkey)
        self.assertTrue("motpurl" in detail, detail)
        motpurl = detail.get("motpurl").get("value")
        self.assertTrue(motpurl == 'motp://privacyidea:mylabel?'
                        'secret=11223344556677889900', motpurl)
        self.assertRaises(Exception, token.set_init_details, "invalid value")
        token.set_init_details({"detail1": "value1"})
        self.assertTrue("detail1" in token.get_init_details(),
                        token.get_init_details())
    def test_16_init_detail(self):
        db_token = Token.query.filter_by(serial=self.serial2).first()
        token = MotpTokenClass(db_token)
        token.add_init_details("otpkey", "11223344556677889900")
        token.add_user(User(login="******", realm=self.realm1))
        token.save()
        self.assertEqual(token.token.owners.first().resolver,
                         self.resolvername1)
        self.assertEqual(token.token.owners.first().user_id, "1000")

        user_object = token.user
        self.assertTrue(user_object.login == "cornelius", user_object)
        self.assertTrue(user_object.resolver == self.resolvername1,
                        user_object)

        detail = token.get_init_detail()
        self.assertTrue("otpkey" in detail, detail)
        # but the otpkey must not be written to token.token.info (DB)
        # As this only writes the OTPkey to the internal init_details dict
        self.assertTrue("otpkey" not in token.token.get_info(),
                        token.token.get_info())

        # Now get the Token2 URL, which we only
        # get, if a user is specified.
        detail = token.get_init_detail(user=User("cornelius", self.realm1))
        self.assertTrue("otpkey" in detail, detail)
        otpkey = detail.get("otpkey")
        self.assertTrue("img" in otpkey, otpkey)
        self.assertTrue("motpurl" in detail, detail)
        motpurl = detail.get("motpurl").get("value")
        self.assertTrue(
            motpurl == 'motp://privacyidea:mylabel?'
            'secret=11223344556677889900', motpurl)
        self.assertRaises(Exception, token.set_init_details, "invalid value")
        token.set_init_details({"detail1": "value1"})
        self.assertTrue("detail1" in token.get_init_details(),
                        token.get_init_details())