improvement
This commit is contained in:
75
test_edit_functionality.py
Normal file
75
test_edit_functionality.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import unittest
|
||||
from app import create_app, db
|
||||
from app.models import Folder, User
|
||||
import uuid
|
||||
|
||||
class EditFolderTestCase(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.app = create_app()
|
||||
self.app.config['TESTING'] = True
|
||||
self.app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///:memory:'
|
||||
self.client = self.app.test_client()
|
||||
|
||||
with self.app.app_context():
|
||||
db.create_all()
|
||||
|
||||
# Create a test user
|
||||
self.user_id = '123e4567-e89b-12d3-a456-426614174000'
|
||||
user = User(id=self.user_id, email='test@example.com')
|
||||
db.session.add(user)
|
||||
db.session.commit()
|
||||
|
||||
# Create a test folder
|
||||
self.folder_id = str(uuid.uuid4())
|
||||
folder = Folder(
|
||||
id=self.folder_id,
|
||||
user_id=self.user_id,
|
||||
name='Test Folder',
|
||||
rule_text='Move all emails to this folder',
|
||||
priority=0
|
||||
)
|
||||
db.session.add(folder)
|
||||
db.session.commit()
|
||||
|
||||
def tearDown(self):
|
||||
with self.app.app_context():
|
||||
db.session.remove()
|
||||
db.drop_all()
|
||||
|
||||
def test_get_folder(self):
|
||||
with self.app.app_context():
|
||||
response = self.client.get(f'/api/folders/{self.folder_id}')
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
data = response.get_json()
|
||||
self.assertEqual(data['name'], 'Test Folder')
|
||||
self.assertEqual(data['rule_text'], 'Move all emails to this folder')
|
||||
self.assertEqual(data['priority'], 0)
|
||||
|
||||
def test_update_folder(self):
|
||||
with self.app.app_context():
|
||||
# Update the folder
|
||||
update_data = {
|
||||
'name': 'Updated Folder',
|
||||
'rule_text': 'Move important emails here',
|
||||
'priority': '1'
|
||||
}
|
||||
|
||||
response = self.client.put(
|
||||
f'/api/folders/{self.folder_id}',
|
||||
data=update_data,
|
||||
content_type='application/x-www-form-urlencoded'
|
||||
)
|
||||
|
||||
# Check that the response is successful
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# Verify the folder was updated in the database
|
||||
folder = Folder.query.filter_by(id=self.folder_id).first()
|
||||
self.assertIsNotNone(folder)
|
||||
self.assertEqual(folder.name, 'Updated Folder')
|
||||
self.assertEqual(folder.rule_text, 'Move important emails here')
|
||||
self.assertEqual(folder.priority, 1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user