75 lines
2.6 KiB
Python
75 lines
2.6 KiB
Python
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() |