File: //home/arjun/projects/buyercall_forms/buyercall/buyercall/tests/user/test_models.py
import pytest
from buyercall.blueprints.partnership.models import Partnership, PartnershipAccount
from buyercall.blueprints.user.models import User
class TestUser(object):
@pytest.mark.skip(reason="method not currently used in system (used in API v1")
def test_create_user(self):
return ''
@pytest.mark.skip(reason="method not currently used in system (used in API v1")
def test_deactivate_user(self):
return ''
@pytest.mark.skip(reason="method not currently used in system (used in API v1")
def test_update_user(self):
return ''
def test_find_by_identity_user(self, users):
user = User.query.filter(User.email == 'admin@localhost.com').first()
test_user = User.find_by_identity('admin@localhost.com')
assert user.id == test_user.id
def test_bulk_delete_user(self, db, users):
user_list = db.session.query(User.id).filter(User.role == 'admin').all()
delete_count = User.bulk_delete(user_list)
assert delete_count == 3
def test_update_activity_tracking_user(self):
test_user = User.find_by_identity('admin@localhost.com')
test_user.update_activity_tracking('8.8.8.8')
retest_user = User.find_by_identity('admin@localhost.com')
assert retest_user.current_sign_in_ip == '8.8.8.8'
def test_partnership_or_partnership_account_user_partnership(self):
user = User.query.filter(User.email == 'partner@localhost.com').first()
assert isinstance(user.partnership_or_partnership_account, Partnership)
def test_partnership_or_partnership_account_user_partnership_account(self):
user = User.query.filter(User.email == 'admin@localhost.com').first()
assert isinstance(user.partnership_or_partnership_account, PartnershipAccount)
def test_serialize_token(self, token):
""" Token serializer serializes a JWS correctly. """
assert token.count('.') == 2
def test_deserialize_token(self, token):
""" Token de-serializer de-serializes a JWS correctly. """
user = User.deserialize_token(token)
assert user.email == 'admin@localhost.com'
def test_deserialize_token_tampered(self, token):
""" Token deserializer returns None when it's been tampered with. """
user = User.deserialize_token('{0}1337'.format(token))
assert user is None
def test_is_last_partner_yes(self, user):
user = User.query.filter(User.email == 'partner@localhost.com').first()
assert User.is_last_partner(user, 'member', 'y') is True
assert User.is_last_partner(user, 'partner', 'y') is False
assert User.is_last_partner(user, 'partner', None) is True
assert User.is_last_partner(user, 'member', None) is True
def test_is_last_partner_no(self, users):
user = User.query.filter(User.email == 'partner@localhost.com').first()
params = {
'role': 'partner',
'email': 'hello@world.com',
'password': 'password'
}
new_user = User(**params)
new_user.save()
assert User.is_last_partner(user, 'member', 'y') is False
assert User.is_last_partner(user, 'partner', None) is False
assert User.is_last_partner(user, 'member', None) is False
def test_is_last_admin_yes(self, user, token):
""" Last admin should not be able to change himself. """
user = User.find_by_identity('admin@localhost.com')
assert User.is_last_admin(user, 'member', 'y') is True
assert User.is_last_admin(user, 'admin', 'y') is False
assert User.is_last_admin(user, 'admin', None) is True
assert User.is_last_admin(user, 'member', None) is True
def test_is_last_admin_no(self, user, token):
""" Not the last admin should be able to change himself. """
user = User.find_by_identity('admin@localhost.com')
params = {
'role': 'admin',
'email': 'hello@world.com',
'password': 'password',
'partnership': user.partnership,
'partnership_account': user.partnership_account
}
new_user = User(**params)
new_user.save()
assert User.is_last_admin(user, 'member', 'y') is False
assert User.is_last_admin(user, 'admin', None) is False
assert User.is_last_admin(user, 'member', None) is False
def test_is_partnership_account_user(self, user):
partnership_account_user = User.find_by_identity('admin@localhost.com')
params = {
'role': 'admin',
'email': 'hello@world.com',
'password': 'password'
}
new_user = User(**params)
new_user.save()
non_partnership_account_user = User.find_by_identity('hello@world.com')
assert partnership_account_user.is_partnership_account_user
assert not non_partnership_account_user.is_partnership_account_user
def test_is_partnership_user(self, users):
partnership_user = User.find_by_identity('partner@localhost.com')
params = {
'role': 'admin',
'email': 'hello@world.com',
'password': 'password'
}
new_user = User(**params)
new_user.save()
non_partnership_user = User.find_by_identity('hello@world.com')
assert partnership_user.is_partnership_user
assert not non_partnership_user.is_partnership_user
def test_is_admin_user_with_groups(self, users):
admin_non_pag = User.find_by_identity('admin@localhost.com')
admin_pag = User.find_by_identity('admin_in_pag@localhost.com')
assert not admin_non_pag.is_admin_user_with_groups
assert not admin_pag.is_admin_user_with_groups
def test_is_viewing_partnership_yes(self):
admin_pag = User.find_by_identity('admin_in_pag@localhost.com')
assert not admin_pag.is_viewing_partnership
def test_is_viewing_partnership_no(self):
admin_non_pag = User.find_by_identity('admin@localhost.com')
admin_pag = User.find_by_identity('admin_in_pag@localhost.com')
assert not admin_pag.is_viewing_partnership
assert not admin_non_pag.is_viewing_partnership
def test_get_user_viewing_partnership_account_id(self):
return ''
def test_get_user_viewing_partnership_account_name(self):
return ''
def test_get_user_viewing_partnership_id(self):
return ''
def test_get_user_viewing_partnership_account_subscription_plan(self):
return ''
def test_set_user_viewing_partnership_account(self):
return ''
def test_is_in_same_group(self):
return ''
def test_subscription(self):
return ''