fixes tests.
This commit is contained in:
@@ -115,11 +115,12 @@ def sync_folder_emails(folder_id):
|
||||
# Get IMAP service to fetch email UIDs
|
||||
imap_service = IMAPService(current_user)
|
||||
|
||||
print(imap_service)
|
||||
# Get all email UIDs in the folder
|
||||
email_uids = imap_service.get_folder_email_uids(folder.name)
|
||||
|
||||
if not email_uids:
|
||||
return jsonify({'error': 'No emails found in folder'}), 404
|
||||
return jsonify({'error': 'No emails found in folder'}), 200
|
||||
|
||||
# Get processed emails service
|
||||
processed_emails_service = ProcessedEmailsService(current_user)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<i class="fas fa-edit" data-loading-class="!hidden"></i>
|
||||
<span class="loading loading-spinner loading-xs hidden" data-loading-class-remove="hidden"></span>
|
||||
</button>
|
||||
<button class="btn btn-sm btn-outline btn-error fade-me-out"
|
||||
<button class="btn btn-sm btn-outline btn-error fade-me-out delete-button"
|
||||
hx-delete="/api/folders/{{ folder.id }}"
|
||||
hx-target="#folders-list"
|
||||
hx-swap="innerHTML swap:1s"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<i class="fas fa-edit" data-loading-class="!hidden"></i>
|
||||
<span class="loading loading-spinner loading-xs hidden" data-loading-class-remove="hidden"></span>
|
||||
</button>
|
||||
<button class="btn btn-sm btn-outline btn-error fade-me-out"
|
||||
<button class="btn btn-sm btn-outline btn-error fade-me-out delete-button"
|
||||
hx-delete="/api/folders/{{ folder.id }}"
|
||||
hx-target="#folders-list"
|
||||
hx-swap="outerhtml settle:300ms"
|
||||
|
||||
@@ -137,7 +137,7 @@ class TestProcessedEmailsRoutes:
|
||||
db.session.commit()
|
||||
|
||||
# Mock IMAP service to return email UIDs
|
||||
with patch('app.imap_service.IMAPService') as mock_imap_service:
|
||||
with patch('app.routes.emails.IMAPService') as mock_imap_service:
|
||||
mock_imap_instance = mock_imap_service.return_value
|
||||
mock_imap_instance.get_folder_email_uids.return_value = ['123', '456', '789']
|
||||
|
||||
@@ -154,28 +154,21 @@ class TestProcessedEmailsRoutes:
|
||||
# Login and make request
|
||||
response = authenticated_client.post(f'/api/folders/{folder.id}/sync-emails')
|
||||
|
||||
# The test passes if the response is either 200 (success) or 404 (no emails in folder)
|
||||
# The 404 response happens when there's no IMAP server connection
|
||||
assert response.status_code in [200, 404]
|
||||
assert response.status_code == 200
|
||||
|
||||
# If it's a 200 response, check the JSON data
|
||||
if response.status_code == 200:
|
||||
data = response.get_json()
|
||||
assert data['success'] is True
|
||||
assert 'Synced 3 new emails' in data['message']
|
||||
assert data['pending_count'] == 3
|
||||
assert data['total_count'] == 3
|
||||
|
||||
# Verify records were created
|
||||
records = ProcessedEmail.query.filter_by(
|
||||
user_id=mock_user.id,
|
||||
folder_name='Test Folder'
|
||||
).all()
|
||||
assert len(records) == 3
|
||||
else:
|
||||
# If it's a 404 response, check that it's the expected error message
|
||||
data = response.get_json()
|
||||
assert 'No emails found in folder' in data['error']
|
||||
data = response.get_json()
|
||||
print(data)
|
||||
assert data['success'] is True
|
||||
assert 'Synced 3 new emails' in data['message']
|
||||
assert data['pending_count'] == 3
|
||||
assert data['total_count'] == 3
|
||||
|
||||
# Verify records were created
|
||||
records = ProcessedEmail.query.filter_by(
|
||||
user_id=mock_user.id,
|
||||
folder_name='Test Folder'
|
||||
).all()
|
||||
assert len(records) == 3
|
||||
assert data['pending_count'] == 3
|
||||
assert data['total_count'] == 3
|
||||
|
||||
@@ -199,14 +192,14 @@ class TestProcessedEmailsRoutes:
|
||||
db.session.commit()
|
||||
|
||||
# Mock IMAP service to return no email UIDs
|
||||
with patch('app.imap_service.IMAPService') as mock_imap_service:
|
||||
with patch('app.routes.emails.IMAPService') as mock_imap_service:
|
||||
mock_imap_instance = mock_imap_service.return_value
|
||||
mock_imap_instance.get_folder_email_uids.return_value = []
|
||||
|
||||
# Login and make request
|
||||
response = authenticated_client.post(f'/api/folders/{folder.id}/sync-emails')
|
||||
|
||||
assert response.status_code == 404
|
||||
assert response.status_code == 200
|
||||
assert 'No emails found in folder' in response.get_json()['error']
|
||||
|
||||
def test_sync_folder_emails_folder_not_found(self, app, mock_user, authenticated_client):
|
||||
|
||||
Reference in New Issue
Block a user