mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2026-05-18 11:47:04 -04:00
58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
from rest_framework.test import APITestCase
|
|
|
|
from adventures.models import Collection, CollectionItineraryItem, Location
|
|
from users.models import CustomUser
|
|
|
|
|
|
class ItineraryAPITestCase(APITestCase):
|
|
def setUp(self):
|
|
self.user = CustomUser.objects.create_user(
|
|
username='itinerary-user',
|
|
email='itinerary-user@example.com',
|
|
password='testpassword123',
|
|
)
|
|
self.collection = Collection.objects.create(user=self.user, name='Test Trip')
|
|
self.location = Location.objects.create(user=self.user, name='Test Location', is_public=True)
|
|
self.client.force_authenticate(user=self.user)
|
|
|
|
def test_create_global_itinerary_item_without_date(self):
|
|
response = self.client.post(
|
|
'/api/itineraries/',
|
|
{
|
|
'collection': str(self.collection.id),
|
|
'content_type': 'location',
|
|
'object_id': str(self.location.id),
|
|
'is_global': True,
|
|
'order': 0,
|
|
},
|
|
format='json',
|
|
)
|
|
|
|
self.assertEqual(response.status_code, 201)
|
|
self.assertEqual(CollectionItineraryItem.objects.count(), 1)
|
|
|
|
item = CollectionItineraryItem.objects.get()
|
|
self.assertTrue(item.is_global)
|
|
self.assertIsNone(item.date)
|
|
self.assertEqual(item.collection, self.collection)
|
|
|
|
payload = response.json()
|
|
self.assertTrue(payload['is_global'])
|
|
self.assertIsNone(payload['date'])
|
|
|
|
def test_create_dated_itinerary_item_without_date_is_rejected(self):
|
|
response = self.client.post(
|
|
'/api/itineraries/',
|
|
{
|
|
'collection': str(self.collection.id),
|
|
'content_type': 'location',
|
|
'object_id': str(self.location.id),
|
|
'is_global': False,
|
|
'order': 0,
|
|
},
|
|
format='json',
|
|
)
|
|
|
|
self.assertEqual(response.status_code, 400)
|
|
self.assertEqual(response.json()['date'][0], 'Dated items must include a date. To create a trip-wide item, set is_global=true.')
|