HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall_new/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 ''