Files
ebury_devex/s3_api/tests/unit/test_app.py
2026-02-18 09:52:08 +01:00

55 lines
1.7 KiB
Python

import os
import pytest
from unittest.mock import patch, MagicMock
from app import app, create_bucket, BucketSchema
# Set a dummy API_KEY for testing
os.environ['API_KEY'] = 'test-key'
@pytest.fixture
def client():
app.config['TESTING'] = True
with app.test_client() as client:
yield client
def test_ping(client):
response = client.get('/')
assert response.status_code == 200
assert response.json == ["Pong"]
@patch('app.Terraform')
def test_create_bucket(mock_terraform):
# Mock Terraform.apply() returning (0, 'success')
mock_tf_instance = MagicMock()
mock_tf_instance.apply.return_value = (0, 'success')
mock_terraform.return_value = mock_tf_instance
result = create_bucket("dev", "AES256", "mybucket", "Enabled")
assert result[0] == 0
def test_bucket_data_success(client):
with patch('app.create_bucket') as mock_create:
mock_create.return_value = (0, 'success')
payload = {
"environment": "dev",
"bucket_name": "mybucket",
"versioning": "Enabled",
"encryption": "AES256",
"api_key": "test-key"
}
response = client.post('/create_bucket', json=payload)
assert response.status_code == 200
assert "Creating bucket mybucket in dev" in response.data.decode()
def test_bucket_data_invalid_key(client):
payload = {
"environment": "dev",
"bucket_name": "mybucket",
"versioning": "Enabled",
"encryption": "AES256",
"api_key": "wrong-key"
}
response = client.post('/create_bucket', json=payload)
assert response.status_code == 403
assert "Authentication error" in response.data.decode()