def testdata(createdb): """ Create the necessary test data for this module. :param models.db createdb: pytest fixture for database module :return list(str): List of tokens for ForgotPasswordTokens created. """ createdb.connect() tokens = [] data = ({ 'full_name': 'df8df1a4 11162dcd40bb', 'email': '[email protected]', 'password': '******' }, { 'full_name': '61c12783 784c62ee9e56', 'email': '[email protected]', 'password': '******' }, { 'full_name': '8e75abf5 4ab60edd1e23', 'email': '[email protected]', 'password': '******' }) for record in data: profile = profiles.Profiles(full_name=record['full_name'], email=record['email']) login = logins.Logins(password=record['password'], profile=profile) token = fpt.ForgotPasswordTokens(login=login) createdb.add(token) tokens.append(token.token) createdb.commit() createdb.close() return tokens
def test_required_login_missing(dbsession): """ Tokens without a login relationship should error. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ token = fpt.ForgotPasswordTokens() token.save() assert token.login_id is None with pytest.raises(IntegrityError): dbsession.commit()
def test_required_login(dbsession): """ Tokens must have a login relation (which must have a profile relation). :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ profile = profiles.Profiles(full_name='f4e074b5 15503d6feef0', email='[email protected]') login = logins.Logins(password='******', profile=profile) token = fpt.ForgotPasswordTokens(login=login) token.save() assert token.login_id is None dbsession.commit() assert token.login == login
def test_get_by_token(dbsession): # pylint: disable=unused-argument """ Create ForgotPasswordTokens. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ profile = profiles.Profiles(full_name='7aad753a bf457864c212', email='[email protected]') login = logins.Logins(password='******', profile=profile) token = fpt.ForgotPasswordTokens(login=login) # Unsaved tokens shouldn't be found assert fpt.ForgotPasswordTokens.get_by_token(token.token) is None token.save() # Now it can be found. assert fpt.ForgotPasswordTokens.get_by_token(token.token) is token
def test_new_token_init(): """ By default new tokens should default to a token and an expiration. """ token = fpt.ForgotPasswordTokens() assert token.token assert token.expiration_dt