fix: EmailManager route calls get_email_users not get_users
Unit Tests / test (push) Successful in 7m27s
Unit Tests / test (push) Successful in 7m27s
The method is named get_email_users in EmailManager; the route was calling the non-existent get_users, causing an AttributeError on every GET /api/email/users request. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -11,7 +11,7 @@ def get_email_users():
|
|||||||
"""Get email users."""
|
"""Get email users."""
|
||||||
try:
|
try:
|
||||||
from app import email_manager
|
from app import email_manager
|
||||||
users = email_manager.get_users()
|
users = email_manager.get_email_users()
|
||||||
return jsonify(users)
|
return jsonify(users)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Error getting email users: {e}")
|
logger.error(f"Error getting email users: {e}")
|
||||||
|
|||||||
@@ -398,7 +398,7 @@ class TestAPIEndpoints(unittest.TestCase):
|
|||||||
def test_email_endpoints(self, mock_email, mock_sr):
|
def test_email_endpoints(self, mock_email, mock_sr):
|
||||||
mock_sr.get.return_value = {'id': 'email', 'installed': True}
|
mock_sr.get.return_value = {'id': 'email', 'installed': True}
|
||||||
# Ensure all relevant mock methods return JSON-serializable values
|
# Ensure all relevant mock methods return JSON-serializable values
|
||||||
mock_email.get_users.return_value = [{'username': 'user1', 'domain': 'cell', 'email': 'user1@cell'}]
|
mock_email.get_email_users.return_value = [{'username': 'user1', 'domain': 'cell', 'email': 'user1@cell'}]
|
||||||
mock_email.create_email_user.return_value = True
|
mock_email.create_email_user.return_value = True
|
||||||
mock_email.delete_email_user.return_value = True
|
mock_email.delete_email_user.return_value = True
|
||||||
mock_email.get_status.return_value = {'postfix_running': True, 'dovecot_running': True, 'total_users': 1, 'total_size_bytes': 0, 'total_size_mb': 0.0, 'users': [{'username': 'user1', 'domain': 'cell', 'email': 'user1@cell'}]}
|
mock_email.get_status.return_value = {'postfix_running': True, 'dovecot_running': True, 'total_users': 1, 'total_size_bytes': 0, 'total_size_mb': 0.0, 'users': [{'username': 'user1', 'domain': 'cell', 'email': 'user1@cell'}]}
|
||||||
@@ -409,10 +409,10 @@ class TestAPIEndpoints(unittest.TestCase):
|
|||||||
response = self.client.get('/api/email/users')
|
response = self.client.get('/api/email/users')
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertIsInstance(json.loads(response.data), list)
|
self.assertIsInstance(json.loads(response.data), list)
|
||||||
mock_email.get_users.side_effect = Exception('fail')
|
mock_email.get_email_users.side_effect = Exception('fail')
|
||||||
response = self.client.get('/api/email/users')
|
response = self.client.get('/api/email/users')
|
||||||
self.assertEqual(response.status_code, 500)
|
self.assertEqual(response.status_code, 500)
|
||||||
mock_email.get_users.side_effect = None
|
mock_email.get_email_users.side_effect = None
|
||||||
# /api/email/users (POST)
|
# /api/email/users (POST)
|
||||||
response = self.client.post('/api/email/users', data=json.dumps({'username': 'user1', 'domain': 'cell', 'password': 'pw'}), content_type='application/json')
|
response = self.client.post('/api/email/users', data=json.dumps({'username': 'user1', 'domain': 'cell', 'password': 'pw'}), content_type='application/json')
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class TestGetEmailUsers(unittest.TestCase):
|
|||||||
|
|
||||||
@patch('app.email_manager')
|
@patch('app.email_manager')
|
||||||
def test_get_users_returns_200_with_list(self, mock_em):
|
def test_get_users_returns_200_with_list(self, mock_em):
|
||||||
mock_em.get_users.return_value = [
|
mock_em.get_email_users.return_value = [
|
||||||
{'username': 'alice@cell', 'domain': 'cell'},
|
{'username': 'alice@cell', 'domain': 'cell'},
|
||||||
{'username': 'bob@cell', 'domain': 'cell'},
|
{'username': 'bob@cell', 'domain': 'cell'},
|
||||||
]
|
]
|
||||||
@@ -51,14 +51,14 @@ class TestGetEmailUsers(unittest.TestCase):
|
|||||||
|
|
||||||
@patch('app.email_manager')
|
@patch('app.email_manager')
|
||||||
def test_get_users_returns_empty_list_when_no_users(self, mock_em):
|
def test_get_users_returns_empty_list_when_no_users(self, mock_em):
|
||||||
mock_em.get_users.return_value = []
|
mock_em.get_email_users.return_value = []
|
||||||
r = self.client.get('/api/email/users')
|
r = self.client.get('/api/email/users')
|
||||||
self.assertEqual(r.status_code, 200)
|
self.assertEqual(r.status_code, 200)
|
||||||
self.assertEqual(json.loads(r.data), [])
|
self.assertEqual(json.loads(r.data), [])
|
||||||
|
|
||||||
@patch('app.email_manager')
|
@patch('app.email_manager')
|
||||||
def test_get_users_returns_500_on_exception(self, mock_em):
|
def test_get_users_returns_500_on_exception(self, mock_em):
|
||||||
mock_em.get_users.side_effect = Exception('mailbox unreachable')
|
mock_em.get_email_users.side_effect = Exception('mailbox unreachable')
|
||||||
r = self.client.get('/api/email/users')
|
r = self.client.get('/api/email/users')
|
||||||
self.assertEqual(r.status_code, 500)
|
self.assertEqual(r.status_code, 500)
|
||||||
self.assertIn('error', json.loads(r.data))
|
self.assertIn('error', json.loads(r.data))
|
||||||
|
|||||||
Reference in New Issue
Block a user