Fix content blocks created by applying a snapshot

This commit is contained in:
Ramon Wenger 2021-06-07 17:45:24 +02:00
parent b26c9c07f5
commit 9c82dc2bf4
2 changed files with 42 additions and 1 deletions

View File

@ -135,7 +135,8 @@ class ContentBlockSnapshot(ContentBlock):
type=self.type, type=self.type,
title=self.title, title=self.title,
owner=owner, owner=owner,
original_creator=self.original_creator original_creator=self.original_creator,
user_created=True
) )
self.add_sibling(instance=cb, pos='right') self.add_sibling(instance=cb, pos='right')
# some wagtail magic # some wagtail magic

View File

@ -23,6 +23,10 @@ class CreateSnapshotTestCase(SkillboxTestCase):
self.assertEqual(content_block['title'], title) self.assertEqual(content_block['title'], title)
self.assertEqual(content_block['hidden'], hidden) self.assertEqual(content_block['hidden'], hidden)
@property
def graphene_client(self):
return self.get_client()
def setUp(self): def setUp(self):
self.createDefault() self.createDefault()
self.client = self.get_client() self.client = self.get_client()
@ -282,6 +286,42 @@ class CreateSnapshotTestCase(SkillboxTestCase):
self.assertTrue(self.skillbox_class.name not in [sc['name'] for sc in cb3['visibleFor']]) self.assertTrue(self.skillbox_class.name not in [sc['name'] for sc in cb3['visibleFor']])
self.assertTrue(self.skillbox_class.name not in [sc['name'] for sc in cb4['visibleFor']]) self.assertTrue(self.skillbox_class.name not in [sc['name'] for sc in cb4['visibleFor']])
def test_create_apply_view_snapshot(self):
result = self.graphene_client.execute(MODULE_QUERY, variables={
'slug': self.module.slug
})
self.assertIsNone(result.get('errors'))
chapter = result['data']['module']['chapters'][0]
self.assertEqual(len(chapter['contentBlocks']), 4)
result = self.graphene_client.execute(CREATE_SNAPSHOT_MUTATION, variables={
'input': {
'module': self.slug,
'selectedClass': to_global_id('SchoolClassNode', self.skillbox_class.pk),
}
})
self.assertIsNone(result.get('errors'))
snapshot_id = result['data']['createSnapshot']['snapshot']['id']
teacher2 = User.objects.get(username='teacher2')
teacher2_client = self.get_client(user=teacher2)
school_class_name = 'second_class'
second_class = SchoolClass.objects.get(name=school_class_name)
result = teacher2_client.execute(APPLY_SNAPSHOT_MUTATION, variables={
'input': {
'snapshot': snapshot_id,
'selectedClass': to_global_id('SchoolClassNode', second_class.pk),
}
})
self.assertIsNone(result.get('errors'))
result = self.graphene_client.execute(MODULE_QUERY, variables={
'slug': self.module.slug
})
self.assertIsNone(result.get('errors'))
chapter = result['data']['module']['chapters'][0]
self.assertEqual(len(chapter['contentBlocks']), 4)
class SnapshotTestCase(SkillboxTestCase): class SnapshotTestCase(SkillboxTestCase):
def setUp(self) -> None: def setUp(self) -> None: