test
This commit is contained in:
@@ -12,7 +12,7 @@ MOCK_USER_ID = 1
|
|||||||
@main.route('/')
|
@main.route('/')
|
||||||
def index():
|
def index():
|
||||||
# Ensure the mock user exists
|
# Ensure the mock user exists
|
||||||
user = User.query.get(MOCK_USER_ID)
|
user = db.session.get(User, MOCK_USER_ID)
|
||||||
if not user:
|
if not user:
|
||||||
user = User(id=MOCK_USER_ID, email='prototype@example.com')
|
user = User(id=MOCK_USER_ID, email='prototype@example.com')
|
||||||
db.session.add(user)
|
db.session.add(user)
|
||||||
|
|||||||
@@ -37,10 +37,14 @@ def test_add_folder_validation_failure_empty_name(client, mock_user):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
# Check that the specific error message is present
|
# Check that the specific error message is present
|
||||||
assert b'Folder name is required' in response.data
|
error_text = soup.find(string='Folder name is required')
|
||||||
|
assert error_text is not None
|
||||||
# Check that the input field has the error class
|
# Check that the input field has the error class
|
||||||
assert b'input-error' in response.data
|
name_input = soup.find('input', {'name': 'name'})
|
||||||
|
assert name_input is not None
|
||||||
|
assert 'input-error' in name_input.get('class', [])
|
||||||
|
|
||||||
def test_add_folder_validation_failure_short_name(client, mock_user):
|
def test_add_folder_validation_failure_short_name(client, mock_user):
|
||||||
"""Test validation failure when folder name is too short."""
|
"""Test validation failure when folder name is too short."""
|
||||||
@@ -49,7 +53,9 @@ def test_add_folder_validation_failure_short_name(client, mock_user):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Folder name must be at least 3 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Folder name must be at least 3 characters')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_add_folder_validation_failure_long_name(client, mock_user):
|
def test_add_folder_validation_failure_long_name(client, mock_user):
|
||||||
"""Test validation failure when folder name is too long."""
|
"""Test validation failure when folder name is too long."""
|
||||||
@@ -59,7 +65,9 @@ def test_add_folder_validation_failure_long_name(client, mock_user):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Folder name must be less than 50 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Folder name must be less than 50 characters')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_add_folder_validation_failure_empty_rule(client, mock_user):
|
def test_add_folder_validation_failure_empty_rule(client, mock_user):
|
||||||
"""Test validation failure when rule text is empty."""
|
"""Test validation failure when rule text is empty."""
|
||||||
@@ -68,7 +76,9 @@ def test_add_folder_validation_failure_empty_rule(client, mock_user):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Rule text is required' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Rule text is required')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_add_folder_validation_failure_short_rule(client, mock_user):
|
def test_add_folder_validation_failure_short_rule(client, mock_user):
|
||||||
"""Test validation failure when rule text is too short."""
|
"""Test validation failure when rule text is too short."""
|
||||||
@@ -77,7 +87,9 @@ def test_add_folder_validation_failure_short_rule(client, mock_user):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Rule text must be at least 10 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Rule text must be at least 10 characters')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_add_folder_validation_failure_long_rule(client, mock_user):
|
def test_add_folder_validation_failure_long_rule(client, mock_user):
|
||||||
"""Test validation failure when rule text is too long."""
|
"""Test validation failure when rule text is too long."""
|
||||||
@@ -87,7 +99,9 @@ def test_add_folder_validation_failure_long_rule(client, mock_user):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Rule text must be less than 200 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Rule text must be less than 200 characters')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_add_folder_validation_multiple_errors(client, mock_user):
|
def test_add_folder_validation_multiple_errors(client, mock_user):
|
||||||
"""Test validation failure with multiple errors."""
|
"""Test validation failure with multiple errors."""
|
||||||
@@ -96,8 +110,11 @@ def test_add_folder_validation_multiple_errors(client, mock_user):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Folder name must be at least 3 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
assert b'Rule text must be at least 10 characters' in response.data
|
error_text1 = soup.find(string='Folder name must be at least 3 characters')
|
||||||
|
error_text2 = soup.find(string='Rule text must be at least 10 characters')
|
||||||
|
assert error_text1 is not None
|
||||||
|
assert error_text2 is not None
|
||||||
|
|
||||||
# Edit folder validation failure tests
|
# Edit folder validation failure tests
|
||||||
def test_edit_folder_validation_failure_empty_name(client, mock_folder):
|
def test_edit_folder_validation_failure_empty_name(client, mock_folder):
|
||||||
@@ -107,7 +124,9 @@ def test_edit_folder_validation_failure_empty_name(client, mock_folder):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Folder name is required' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Folder name is required')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_edit_folder_validation_failure_short_name(client, mock_folder):
|
def test_edit_folder_validation_failure_short_name(client, mock_folder):
|
||||||
"""Test validation failure when folder name is too short during edit."""
|
"""Test validation failure when folder name is too short during edit."""
|
||||||
@@ -116,7 +135,9 @@ def test_edit_folder_validation_failure_short_name(client, mock_folder):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Folder name must be at least 3 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Folder name must be at least 3 characters')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_edit_folder_validation_failure_long_name(client, mock_folder):
|
def test_edit_folder_validation_failure_long_name(client, mock_folder):
|
||||||
"""Test validation failure when folder name is too long during edit."""
|
"""Test validation failure when folder name is too long during edit."""
|
||||||
@@ -126,7 +147,9 @@ def test_edit_folder_validation_failure_long_name(client, mock_folder):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Folder name must be less than 50 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Folder name must be less than 50 characters')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_edit_folder_validation_failure_empty_rule(client, mock_folder):
|
def test_edit_folder_validation_failure_empty_rule(client, mock_folder):
|
||||||
"""Test validation failure when rule text is empty during edit."""
|
"""Test validation failure when rule text is empty during edit."""
|
||||||
@@ -135,7 +158,9 @@ def test_edit_folder_validation_failure_empty_rule(client, mock_folder):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Rule text is required' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Rule text is required')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_edit_folder_validation_failure_short_rule(client, mock_folder):
|
def test_edit_folder_validation_failure_short_rule(client, mock_folder):
|
||||||
"""Test validation failure when rule text is too short during edit."""
|
"""Test validation failure when rule text is too short during edit."""
|
||||||
@@ -144,7 +169,9 @@ def test_edit_folder_validation_failure_short_rule(client, mock_folder):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Rule text must be at least 10 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Rule text must be at least 10 characters')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_edit_folder_validation_failure_long_rule(client, mock_folder):
|
def test_edit_folder_validation_failure_long_rule(client, mock_folder):
|
||||||
"""Test validation failure when rule text is too long during edit."""
|
"""Test validation failure when rule text is too long during edit."""
|
||||||
@@ -154,7 +181,9 @@ def test_edit_folder_validation_failure_long_rule(client, mock_folder):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Rule text must be less than 200 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
|
error_text = soup.find(string='Rule text must be less than 200 characters')
|
||||||
|
assert error_text is not None
|
||||||
|
|
||||||
def test_edit_folder_validation_multiple_errors(client, mock_folder):
|
def test_edit_folder_validation_multiple_errors(client, mock_folder):
|
||||||
"""Test validation failure with multiple errors during edit."""
|
"""Test validation failure with multiple errors during edit."""
|
||||||
@@ -163,8 +192,11 @@ def test_edit_folder_validation_multiple_errors(client, mock_folder):
|
|||||||
content_type='application/x-www-form-urlencoded')
|
content_type='application/x-www-form-urlencoded')
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert b'Folder name must be at least 3 characters' in response.data
|
soup = BeautifulSoup(response.data, 'html.parser')
|
||||||
assert b'Rule text must be at least 10 characters' in response.data
|
error_text1 = soup.find(string='Folder name must be at least 3 characters')
|
||||||
|
error_text2 = soup.find(string='Rule text must be at least 10 characters')
|
||||||
|
assert error_text1 is not None
|
||||||
|
assert error_text2 is not None
|
||||||
|
|
||||||
# Dialog close tests
|
# Dialog close tests
|
||||||
def test_add_folder_success_closes_dialog(client, mock_user):
|
def test_add_folder_success_closes_dialog(client, mock_user):
|
||||||
|
|||||||
Reference in New Issue
Block a user