Beispiel #1
0
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'
Beispiel #2
0
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
Beispiel #3
0
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 = ''
Beispiel #4
0
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
Beispiel #6
0
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
Beispiel #8
0
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
Beispiel #9
0
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()
Beispiel #11
0
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()
Beispiel #12
0
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()
Beispiel #13
0
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()
Beispiel #15
0
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()
Beispiel #16
0
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
Beispiel #17
0
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
Beispiel #18
0
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
Beispiel #19
0
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
Beispiel #21
0
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
Beispiel #23
0
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
Beispiel #24
0
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
Beispiel #25
0
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