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_forms/buyercall/buyercall/tests/blocked_numbers/test_views.py
from flask import url_for
from flask_babel import gettext as _

from buyercall.tests.lib.util import ViewTestMixin
from buyercall.tests.lib.assertions import assert_status_with_message
from buyercall.blueprints.block_numbers.models import Block


class TestBlockedNumberViews(ViewTestMixin):

    def test_blocked_number_page_logged_out(self):
        response = self.client.get(url_for('block_numbers.block_number_list'))
        assert_status_with_message(302, response, _('block_numbers'))

    def test_blocked_number_page(self):
        self.login()
        response = self.client.get(url_for('block_numbers.block_number_list'))
        assert_status_with_message(200, response, _('Blocked Numbers List'))

    def test_new_blocked_number_page(self):
        self.login()
        response = self.client.get(url_for('block_numbers.block_new'))
        assert_status_with_message(200, response, _('Add New Blocked Number'))

    def test_new_blocked_number(self, users):
        self.login()
        old_count = Block.query.count()
        params = {
            'phonenumber': '5678546456',
            'status': 'blocked'
        }
        response = self.client.post(
            url_for('block_numbers.block_new'),
            data=params,
            follow_redirects=True
        )
        new_count = Block.query.count()
        assert_status_with_message(200, response, _('Blocked Numbers List'))
        assert new_count == old_count + 1

    def test_new_blocked_number_fail(self):
        self.login()
        old_count = Block.query.count()
        params = {
            'phonenumber': '5678546456',
        }
        response = self.client.post(
            url_for('block_numbers.block_new'),
            data=params
        )
        new_count = Block.query.count()
        assert_status_with_message(200, response, _('Add New Blocked Number'))
        assert new_count == old_count

    def test_blocked_number_edit_page(self):
        self.login()
        block = Block.query.first()
        response = self.client.get(url_for('block_numbers.block_edit', id=block.id))
        assert_status_with_message(200, response, _('Update Blocked Number'))

    def test_blocked_number_edit(self):
        self.login()
        block = Block.query.first()
        params = {
            'phonenumber': '7754654565'
        }
        response = self.client.post(
            url_for('block_numbers.block_edit', id=block.id),
            data=params,
            follow_redirects=True
        )
        edited_block = Block.query.filter(Block.id == block.id).first()
        assert_status_with_message(200, response, _('Blocked Numbers List'))
        assert edited_block.phonenumber == '7754654565'

    def test_blocked_number_delete(self):
        self.login()
        old_count = Block.query.count()
        block = Block.query.first()
        response = self.client.delete(
            url_for('block_numbers.block_delete', id=block.id),
        )
        new_count = Block.query.count()
        assert response.status_code == 200
        assert old_count == new_count + 1