def test_email_validation_bademail(): """ email address must be valid. """ with pytest.raises(ValueError): profiles.Profiles(email='bademail') inst = profiles.Profiles() with pytest.raises(ValueError): inst.email = 'otherbademail'
def test_email_validation_none(): """ None is not a valid email value """ with pytest.raises(TypeError): profiles.Profiles(email=None) inst = profiles.Profiles() with pytest.raises(TypeError): inst.email = None
def test_email_validation_blank(): """ Blanks are not allowed """ with pytest.raises(ValueError): profiles.Profiles(email='') inst = profiles.Profiles() with pytest.raises(ValueError): inst.email = ''
def test_email_validation(): """ Must be a valid email address in model. """ inst1 = profiles.Profiles(email='[email protected]') assert inst1.email == '[email protected]' # You can create model without an email inst2 = profiles.Profiles() inst2.email = '[email protected]' assert inst2.email == '[email protected]'
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 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 AuthenticationTokens created. """ createdb.connect() tokens = [] data = ({ 'full_name': '24c6e6a4 960f1df1d6ac', 'email': '[email protected]', 'password': '******' }, { 'full_name': '8ad0c442 92728ef096a4', 'email': '[email protected]', 'password': '******' }, { 'full_name': '5a61452b 2830a9f8c820', '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 = autht.AuthenticationTokens(login=login) createdb.add(token) tokens.append(token.token) createdb.commit() createdb.close() return tokens
def test_memberships_relation(dbsession): """ Groups can have Memberships relations. """ profile1 = profiles.Profiles(full_name='92e17a59 740480af51b5', email='[email protected]') membership1 = memberships.Memberships(profile=profile1) profile2 = profiles.Profiles(full_name='0464e813 ddaefbf8d308', email='[email protected]') membership2 = memberships.Memberships(profile=profile2) group = groups.Groups(name='53f8469f-9d33-4fae-be9f-20b47f62ec80') group.memberships += (membership1, membership2) group.save() dbsession.commit() assert len(group.memberships) == 2 assert membership1 in group.memberships assert membership2 in group.memberships
def test_login_relation(dbsession): # pylint: disable=unused-argument """ Profiles can have a Logins relation. """ profile = profiles.Profiles(full_name='4176898b 61d515c6e423', email='[email protected]') login = logins.Logins(password='******') assert profile.login is None profile.login = login assert profile.login == login
def test_required_fields(dbsession): """ Profiles must have a full_name and an email address. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ profile = profiles.Profiles(full_name='07694435 6b04b7cda98c', email='[email protected]') profile.save() dbsession.commit()
def test_required_fields(dbsession): """ Membership Profile and Group are required fields. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ group = groups.Groups(name='82cc113d-fee2-4b85-b28e-2bf312bec470') profile = profiles.Profiles(full_name='b0596fbf b3b53ea6a099', email='[email protected]') membership = memberships.Memberships(group=group, profile=profile) membership.save() dbsession.commit()
def test_required_email(dbsession): """ Profiles must have a full_name and an email address. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ profile = profiles.Profiles(full_name='a79b8cae 76fdda035a30') profile.save() # email is blank with pytest.raises(IntegrityError): dbsession.commit()
def test_required_fields_blank(dbsession): """ Profiles must have a full_name and an email address. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ profile = profiles.Profiles() profile.save() # full_name and email are blank with pytest.raises(IntegrityError): dbsession.commit()
def test_person_relation(dbsession): # pylint: disable=unused-argument """ Profiles can have a Logins relation. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ profile = profiles.Profiles(full_name='a142cb03 6b369b6bfd1e', email='[email protected]') login = logins.Logins(password='******') assert login.profile is None login.profile = profile assert login.profile == profile
def test_required_group_missing(dbsession): """ Membership Group not existing is an error. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ profile = profiles.Profiles(full_name='103ae318 69f4f2471acc', email='[email protected]') membership = memberships.Memberships(profile=profile) membership.save() with pytest.raises(IntegrityError): dbsession.commit()
def test_required_profile_missing(dbsession): """ Login profile not existing is an error. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ login = logins.Logins(password='******', email='[email protected]') profile = profiles.Profiles(full_name='5f904cb5 3dad7d54b87b', email='[email protected]') login.save() # Profile isn't saved because we didn't use the relationship attribute. assert login.email == profile.email with pytest.raises(IntegrityError): dbsession.commit()
def test_get_by_email(dbsession): # pylint: disable=unused-argument """ Create Profiles, and then fetch them by email address. """ profile = profiles.Profiles(full_name='7cfeb824 a59fafe0f656', email='*****@*****.**') # Unsaved profiles shouldn't be found assert profiles.Profiles.get_by_email('*****@*****.**') is None profile.save() # Now it can be found. assert profiles.Profiles.get_by_email('*****@*****.**') == profile
def test_required_profile(dbsession): """ Logins profile must exist. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ login = logins.Logins(password='******') profile = profiles.Profiles(full_name='9ca81d5c 42badee25c18', email='[email protected]') login.profile = profile login.save() assert login.email is None dbsession.commit() assert login.email == profile.email
def test_memberships_relation(dbsession): """ Profiles can have Memberships relations. """ group1 = groups.Groups(name='dfe5cf8f-1da7-4b70-aefb-8236cd894c5d') membership1 = memberships.Memberships(group=group1) group2 = groups.Groups(name='3b821a0d-5313-4534-8f18-573845915e21') membership2 = memberships.Memberships(group=group2) profile = profiles.Profiles(full_name='61f7d724 7cab51d68b61', email='[email protected]') profile.memberships += (membership1, membership2) profile.save() dbsession.commit() assert len(profile.memberships) == 2 assert membership1 in profile.memberships assert membership2 in profile.memberships
def test_get_by_email(dbsession): # pylint: disable=unused-argument """ Create Logins, and then fetch them by email address. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ login = logins.Logins(password='******') login.profile = profiles.Profiles(full_name='fb000987 2e2cb7f95b6a', email='[email protected]') # Unsaved logins shouldn't be found assert logins.Logins.get_by_email('[email protected]') is None login.save() # Now it can be found. assert logins.Logins.get_by_email('[email protected]') is login
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_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='3ea4a6ec 7bb15fa70936', email='[email protected]') login = logins.Logins(password='******', profile=profile) token = autht.AuthenticationTokens(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_get_by_token(dbsession): # pylint: disable=unused-argument """ Create AuthenticationTokens. :param sqlalchemy.orm.session.Session dbsession: pytest fixture for database session """ profile = profiles.Profiles(full_name='8afcc6f0 34086c4efc7c', email='[email protected]') login = logins.Logins(password='******', profile=profile) token = autht.AuthenticationTokens(login=login) # Unsaved tokens shouldn't be found assert autht.AuthenticationTokens.get_by_token(token.token) is None token.save() # Now it can be found. assert autht.AuthenticationTokens.get_by_token(token.token) is token
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 emails for Logins created. """ createdb.connect() emails = [] data = ({'full_name': 'f4d94fd2 c10282e403d0', 'email': '[email protected]', 'password': '******'}, {'full_name': 'e3391b5 586ecf591968', '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) createdb.add(login) emails.append(profile.email) createdb.commit() createdb.close() return emails
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 emails for Profiles created. """ createdb.connect() emails = [] data = ({ 'full_name': '4961e0b7 9acfd7e74533', 'email': '[email protected]' }, { 'full_name': '315ab3db 535af6a5b009', 'email': '[email protected]' }) for record in data: profile = profiles.Profiles(full_name=record['full_name'], email=record['email']) createdb.add(profile) emails.append(profile.email) createdb.commit() createdb.close() return emails