|
|
|
@ -2,7 +2,7 @@ from django.contrib.auth import get_user_model
|
|
|
|
|
from django.test import TestCase
|
|
|
|
|
from django.urls import reverse
|
|
|
|
|
|
|
|
|
|
from writingtogether.models import Story, StoryPart
|
|
|
|
|
from writingtogether.models import Story, StoryPart, StoryRound
|
|
|
|
|
|
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
|
|
|
@ -89,4 +89,62 @@ class TestViews(TestCase):
|
|
|
|
|
# each story has 2 story parts
|
|
|
|
|
self.assertEqual(story_user1_parts.count(), 2)
|
|
|
|
|
self.assertEqual(story_user2_parts.count(), 2)
|
|
|
|
|
self.assertEqual(story_user3_parts.count(), 2)
|
|
|
|
|
self.assertEqual(story_user3_parts.count(), 2)
|
|
|
|
|
|
|
|
|
|
def test_integration_create_and_next_part(self):
|
|
|
|
|
response = self.client.post(
|
|
|
|
|
reverse('writing:create_story_round'),
|
|
|
|
|
{
|
|
|
|
|
'name': 'test round',
|
|
|
|
|
'participants': [self.user1.pk, self.user2.pk],
|
|
|
|
|
'number_of_rounds': 2
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
story_round = StoryRound.objects.get()
|
|
|
|
|
|
|
|
|
|
result = story_round.get_next_story_part(self.user1)
|
|
|
|
|
|
|
|
|
|
story_user1 = Story.objects.get(started_by=self.user1.pk)
|
|
|
|
|
self.assertEqual(result.part_of, story_user1)
|
|
|
|
|
self.assertEqual(result.turn_number, 0)
|
|
|
|
|
self.assertEqual(result.user_id, self.user1.pk)
|
|
|
|
|
|
|
|
|
|
def test_integration_create_and_next_part__more_rounds(self):
|
|
|
|
|
response = self.client.post(
|
|
|
|
|
reverse('writing:create_story_round'),
|
|
|
|
|
{
|
|
|
|
|
'name': 'test round',
|
|
|
|
|
'participants': [self.user1.pk, self.user2.pk],
|
|
|
|
|
'number_of_rounds': 4
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
story_round = StoryRound.objects.get()
|
|
|
|
|
result = story_round.get_next_story_part(self.user1)
|
|
|
|
|
|
|
|
|
|
story_user1 = Story.objects.get(started_by=self.user1.pk)
|
|
|
|
|
self.assertEqual(result.part_of, story_user1)
|
|
|
|
|
self.assertEqual(result.turn_number, 0)
|
|
|
|
|
self.assertEqual(result.user_id, self.user1.pk)
|
|
|
|
|
|
|
|
|
|
def test_integration_create_and_next_part__second_round(self):
|
|
|
|
|
response = self.client.post(
|
|
|
|
|
reverse('writing:create_story_round'),
|
|
|
|
|
{
|
|
|
|
|
'name': 'test round',
|
|
|
|
|
'participants': [self.user1.pk, self.user2.pk],
|
|
|
|
|
'number_of_rounds': 4
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
story_round = StoryRound.objects.get()
|
|
|
|
|
story_round.current_turn = 1
|
|
|
|
|
story_round.save()
|
|
|
|
|
|
|
|
|
|
result = story_round.get_next_story_part(self.user1)
|
|
|
|
|
|
|
|
|
|
story_user2 = Story.objects.get(started_by=self.user2.pk)
|
|
|
|
|
self.assertEqual(result.part_of, story_user2)
|
|
|
|
|
self.assertEqual(result.turn_number, 1)
|
|
|
|
|
self.assertEqual(result.user_id, self.user1.pk)
|
|
|
|
|