settings split for development and production.py
This commit is contained in:
+48
-2
@@ -1,3 +1,49 @@
|
||||
from django.test import TestCase
|
||||
import base64
|
||||
from unittest.mock import patch
|
||||
from django.test import TestCase, Client
|
||||
from django.urls import reverse
|
||||
from rest_framework import status
|
||||
from django.contrib.auth import get_user_model
|
||||
from containers.models import Container, ContainerPhotos
|
||||
from common.models import LinesModel, ContainerTypeModel
|
||||
from preinfo.models import Preinfo
|
||||
|
||||
# Create your tests here.
|
||||
class DamagesAPITestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.client = Client()
|
||||
DepotUser = get_user_model()
|
||||
self.user = DepotUser.objects.create_user(username='testuser', password='password', user_type='E')
|
||||
self.client.login(username='testuser', password='password')
|
||||
self.line = LinesModel.objects.create(name='Test Line')
|
||||
self.container_type = ContainerTypeModel.objects.create(name='20ft')
|
||||
self.preinfo = Preinfo.objects.create(number='PRE123', line=self.line, container_type=self.container_type)
|
||||
self.container = Container.objects.create(
|
||||
number='TEST1234567',
|
||||
line=self.line,
|
||||
container_type=self.container_type,
|
||||
received_by=self.user,
|
||||
preinfo=self.preinfo
|
||||
)
|
||||
|
||||
@patch('damages_api.views.upload_damage_photo')
|
||||
def test_damage_photo_upload(self, mock_upload):
|
||||
mock_upload.return_value = 'http://mock-url.com/photo.jpg'
|
||||
photo_data = base64.b64encode(b'test photo data').decode('utf-8')
|
||||
response = self.client.post(reverse('damages-api', args=[self.container.id]), {
|
||||
'photo': photo_data,
|
||||
'photo_extension': 'jpg',
|
||||
}, content_type='application/json')
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
self.assertTrue(ContainerPhotos.objects.filter(container=self.container).exists())
|
||||
|
||||
@patch('damages_api.views.boto3.client')
|
||||
def test_damage_photo_retrieval(self, mock_boto_client):
|
||||
mock_s3 = mock_boto_client.return_value
|
||||
mock_s3.list_objects_v2.return_value = {
|
||||
'Contents': [
|
||||
{'Key': f'{self.container.id}/test.jpg'}
|
||||
]
|
||||
}
|
||||
response = self.client.get(reverse('damages-api', args=[self.container.id]))
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertIn('url', response.data[0])
|
||||
Reference in New Issue
Block a user