From e230c0b8e5f02483f37e718f24c830026f2e7122 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Wed, 28 Sep 2022 15:34:07 +0200 Subject: [PATCH] Fix python tests --- .../tests/media_library_factories.py | 100 -------------- .../vbv_lernwelt/competence/tests/test_api.py | 25 ++++ .../tests/test_create_default_documents.py | 25 ---- .../test_create_default_media_library.py | 29 ---- .../tests/test_media_library_factories.py | 47 ------- .../course/creators/test_course.py | 128 +++++++++++++++++- .../commands/create_default_courses.py | 4 + .../course/migrations/0001_initial.py | 6 +- server/vbv_lernwelt/course/models.py | 4 +- .../{test_api.py => test_completion_api.py} | 0 .../media_library/tests/test_api.py | 25 ++++ .../tests/test_create_default_documents.py | 25 ---- .../test_create_default_media_library.py | 29 ---- .../tests/test_media_library_factories.py | 47 ------- 14 files changed, 185 insertions(+), 309 deletions(-) delete mode 100644 server/vbv_lernwelt/competence/tests/media_library_factories.py create mode 100644 server/vbv_lernwelt/competence/tests/test_api.py delete mode 100644 server/vbv_lernwelt/competence/tests/test_create_default_documents.py delete mode 100644 server/vbv_lernwelt/competence/tests/test_create_default_media_library.py delete mode 100644 server/vbv_lernwelt/competence/tests/test_media_library_factories.py rename server/vbv_lernwelt/course/tests/{test_api.py => test_completion_api.py} (100%) create mode 100644 server/vbv_lernwelt/media_library/tests/test_api.py delete mode 100644 server/vbv_lernwelt/media_library/tests/test_create_default_documents.py delete mode 100644 server/vbv_lernwelt/media_library/tests/test_create_default_media_library.py delete mode 100644 server/vbv_lernwelt/media_library/tests/test_media_library_factories.py diff --git a/server/vbv_lernwelt/competence/tests/media_library_factories.py b/server/vbv_lernwelt/competence/tests/media_library_factories.py deleted file mode 100644 index 1173e2b0..00000000 --- a/server/vbv_lernwelt/competence/tests/media_library_factories.py +++ /dev/null @@ -1,100 +0,0 @@ -import uuid - -import wagtail_factories - -from vbv_lernwelt.competence.content_blocks import MediaContentCollection, AnchorBlock, LinkBlock, \ - CrossReferenceBlock -from vbv_lernwelt.competence.models import LibraryDocument, MediaLibraryPage, MediaCategoryPage - - -class LibraryDocumentFactory(wagtail_factories.DocumentFactory): - link_display_text = 'Dokument herunter laden' - thumbnail = 'https://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/thumbnails/image/file.jpg' - - class Meta: - model = LibraryDocument - - -class MediaLibraryPageFactory(wagtail_factories.PageFactory): - title = 'Mediathek' - - class Meta: - model = MediaLibraryPage - - -class AnchorBlockFactory(wagtail_factories.StructBlockFactory): - class Meta: - model = AnchorBlock - - -class LinkBlockFactory(wagtail_factories.StructBlockFactory): - title = 'Interesting link' - description = 'This link is really interesting...' - url = 'https://www.vbv.ch/' - - class Meta: - model = LinkBlock - - -class CrossReferenceBlockFactory(wagtail_factories.StructBlockFactory): - class Meta: - model = CrossReferenceBlock - - -class MediaContentCollectionFactory(wagtail_factories.StructBlockFactory): - title = 'Links' - contents = wagtail_factories.StreamFieldFactory({ - 'Links': LinkBlockFactory, - 'Documents': LibraryDocumentFactory - }) - - class Meta: - model = MediaContentCollection - - -class MediaCategoryPageFactory(wagtail_factories.PageFactory): - title = 'Fahrzeug' - introduction_text = 'Das Auto ist für viele der grösste Stolz! Es birgt aber ...' - description_title = 'Das erwartet dich in diesem Handlungsfeld' - - class Meta: - model = MediaCategoryPage - - -def create_media_content_link(link_block=None): - if link_block is None: - link_block = LinkBlockFactory() - return { - "id": str(uuid.uuid4()), - "type": "Links", - "value": dict(link_block.items()) - } - - -def create_link_collection(links_dict=None): - return { - "id": str(uuid.uuid4()), - "type": "content_collection", - "value": { - "title": "Links", - "contents": [link_dict for link_dict in links_dict] - } - } - - -def create_document_collection(document_ids=None): - if document_ids is None: - document_ids = [d.id for d in LibraryDocument.objects.all()] - - return { - "id": str(uuid.uuid4()), - "type": "content_collection", - "value": { - "title": "Lernmedien", - "contents": [{ - "id": str(uuid.uuid4()), - "type": "Documents", - "value": doc_id - } for doc_id in document_ids] - } - } diff --git a/server/vbv_lernwelt/competence/tests/test_api.py b/server/vbv_lernwelt/competence/tests/test_api.py new file mode 100644 index 00000000..10d68783 --- /dev/null +++ b/server/vbv_lernwelt/competence/tests/test_api.py @@ -0,0 +1,25 @@ +from rest_framework.test import APITestCase + +from vbv_lernwelt.competence.models import CompetenceProfilePage +from vbv_lernwelt.core.admin import User +from vbv_lernwelt.core.create_default_users import create_default_users +from vbv_lernwelt.course.creators.test_course import create_test_course + + +class CompetenceAPITestCase(APITestCase): + def setUp(self) -> None: + create_default_users() + create_test_course() + self.user = User.objects.get(username='student') + self.client.login(username='student', password='test') + + def test_get_learnpathPage(self): + slug = 'test-lehrgang-competence' + competence_profile = CompetenceProfilePage.objects.get(slug=slug) + response = self.client.get(f'/api/course/page/{slug}/') + + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertEqual(competence_profile.title, data['title']) + self.assertEqual('Innerhalb des Handlungsfelds «Fahrzeug» bin ich fähig, die Ziele und Pläne des Kunden zu ergründen (SOLL).', data['children'][1]['children'][0]['title']) diff --git a/server/vbv_lernwelt/competence/tests/test_create_default_documents.py b/server/vbv_lernwelt/competence/tests/test_create_default_documents.py deleted file mode 100644 index 1708b216..00000000 --- a/server/vbv_lernwelt/competence/tests/test_create_default_documents.py +++ /dev/null @@ -1,25 +0,0 @@ -from django.test import TestCase -from wagtail.core.models import Collection - -from vbv_lernwelt.core.create_default_users import create_default_users -from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail -from vbv_lernwelt.competence.create_default_documents import create_default_collections, create_default_documents -from vbv_lernwelt.competence.models import LibraryDocument - - -class TestCreateDefaultDocuments(TestCase): - def setUp(self) -> None: - create_default_users() - create_locales_for_wagtail() - - def test_create_default_collections(self): - create_default_collections() - qs = Collection.objects.filter(name="Versicherungsvermittler/in") - self.assertTrue(qs.exists()) - - def test_create_default_documents(self): - create_default_collections() - - create_default_documents() - qs = LibraryDocument.objects.all() - self.assertTrue(qs.exists()) diff --git a/server/vbv_lernwelt/competence/tests/test_create_default_media_library.py b/server/vbv_lernwelt/competence/tests/test_create_default_media_library.py deleted file mode 100644 index 29362d0d..00000000 --- a/server/vbv_lernwelt/competence/tests/test_create_default_media_library.py +++ /dev/null @@ -1,29 +0,0 @@ -from django.test import TestCase - -from vbv_lernwelt.core.create_default_users import create_default_users -from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail -from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFactory -from vbv_lernwelt.competence.create_default_competence import create_default_competence -from vbv_lernwelt.competence.models import MediaLibraryPage, MediaCategoryPage - - -class TestCreateDefaultDocuments(TestCase): - def setUp(self) -> None: - create_default_users() - create_locales_for_wagtail() - LearningPathFactory() - create_default_competence() - - - def test_create_default_competence(self): - - self.assertEqual(MediaLibraryPage.objects.all().count(), 1) - self.assertEqual(MediaCategoryPage.objects.all().count(), 12) - - def test_create_category_fahrzeug_contains_content(self): - fahrzeug = MediaCategoryPage.objects.get(title='Fahrzeug') - - - - - diff --git a/server/vbv_lernwelt/competence/tests/test_media_library_factories.py b/server/vbv_lernwelt/competence/tests/test_media_library_factories.py deleted file mode 100644 index 11f3002a..00000000 --- a/server/vbv_lernwelt/competence/tests/test_media_library_factories.py +++ /dev/null @@ -1,47 +0,0 @@ -import json - -from django.test import TestCase - -from vbv_lernwelt.core.create_default_users import create_default_users -from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail -from vbv_lernwelt.competence.models import MediaCategoryPage -from vbv_lernwelt.competence.tests.competence_factories import MediaContentCollectionFactory, MediaCategoryPageFactory, \ - LinkBlockFactory, generate_default_content2, collection_body_dict - - -class TestMediaLibraryFactories(TestCase): - def setUp(self) -> None: - create_default_users() - create_locales_for_wagtail() - - def test_content_collection_factory(self): - content_collection = MediaContentCollectionFactory() - self.assertEqual(content_collection.get('title'), 'Links') - self.assertEqual(content_collection.get('collection_type'), 'LearningMedia') - - def test_link_block_factory(self): - link = LinkBlockFactory(title='MyLink') - self.assertEqual(link.get('description'), 'This link is really interesting...') - self.assertEqual(link.get('url'), 'www.example.com') - self.assertEqual(link.get('link_display_text'), 'Link öffnen') - self.assertEqual(link.get('title'), 'MyLink') - - def test_category_contains_content_collection(self): - default_content = generate_default_content2() - default_content['body__content_collection__0__title'] = 'Spidf' - - category = MediaCategoryPageFactory(**default_content) - print(category.body.raw_data) - self.assertNotEqual(category.body.raw_data, []) - - def collection_via_dict_generation(self): - category = MediaCategoryPageFactory() - category.body = json.dumps(collection_body_dict()) - category.save() - category_id = category.id - new_category = MediaCategoryPage.objects.get(id=category_id) - self.assertNotEqual(new_category.body, []) - self.assertNotEqual(new_category.body, []) - - - diff --git a/server/vbv_lernwelt/course/creators/test_course.py b/server/vbv_lernwelt/course/creators/test_course.py index 47f0256c..79ab3624 100644 --- a/server/vbv_lernwelt/course/creators/test_course.py +++ b/server/vbv_lernwelt/course/creators/test_course.py @@ -1,20 +1,31 @@ +import json + import wagtail_factories from django.conf import settings from wagtail.models import Site +from vbv_lernwelt.competence.factories import CompetenceProfilePageFactory, CompetencePageFactory, \ + PerformanceCriteriaFactory +from vbv_lernwelt.competence.models import CompetencePage from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail from vbv_lernwelt.course.consts import COURSE_TEST_ID from vbv_lernwelt.course.factories import CoursePageFactory -from vbv_lernwelt.course.models import CoursePage, CourseCategory +from vbv_lernwelt.course.models import CoursePage, CourseCategory, Course +from vbv_lernwelt.learnpath.models import LearningUnit from vbv_lernwelt.learnpath.tests.learning_path_factories import CircleFactory, LearningSequenceFactory, \ LearningContentFactory, DocumentBlockFactory, LearningUnitFactory, TestBlockFactory, ExerciseBlockFactory, \ LearningPathFactory, TopicFactory, OnlineTrainingBlockFactory +from vbv_lernwelt.media_library.tests.media_library_factories import MediaLibraryPageFactory, \ + create_document_collection, create_link_collection, create_media_content_link, LinkBlockFactory, \ + MediaCategoryPageFactory def create_test_course(): create_locales_for_wagtail() create_test_course_with_categories() create_test_learning_path() + create_test_competence_profile() + create_test_media_library() def create_test_course_with_categories(apps=None, schema_editor=None): @@ -27,7 +38,7 @@ def create_test_course_with_categories(apps=None, schema_editor=None): course, _ = Course.objects.get_or_create( id=COURSE_TEST_ID, - title='Test Lerngang', + title='Test Lehrgang', category_name='Handlungsfeld' ) @@ -164,3 +175,116 @@ def create_test_learning_path(user=None, skip_locales=True): contents=[('document', DocumentBlockFactory())] ) + +def create_test_competence_profile(): + course = Course.objects.get(id=COURSE_TEST_ID) + course_page = CoursePage.objects.get(course_id=COURSE_TEST_ID) + + competence_profile_page = CompetenceProfilePageFactory( + title='Kompetenzprofil', + parent=course_page, + ) + + competences = [{ + 'competence_id': 'X1', + 'title': 'Weiterempfehlung für Neukunden generieren', + 'items': [ + 'Verhandlungsgeschick', + 'Überzeugtes Auftreten', + ], + }, { + 'competence_id': 'Y1', + 'title': 'Wünsche, Ziele und Bedürfnisse der Kunden im Gespräch ermitteln', + 'items': [ + 'Gesprächsführung', + 'Fragetechniken', + 'Kundenpsychologie', + ] + }, { + 'competence_id': 'Y2', + 'title': 'Analyse des Kundenbedarfs und des Kundenbedürfnisses durchführen', + 'items': [ + 'Fragetechniken', + 'Visuelle Hilfsmittel / Visualisierungstechniken', + ] + }] + + for c in competences: + CompetencePageFactory( + parent=competence_profile_page, + competence_id=c['competence_id'], + title=c['title'], + items=[ + ('item', i) for i in c['items'] + ] + ) + + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id='Y1'), + competence_id='Y1.3', + title='Innerhalb des Handlungsfelds «Fahrzeug» bin ich fähig, die Ziele und Pläne des Kunden zu ergründen (SOLL).', + learning_unit=LearningUnit.objects.get(slug='test-lehrgang-lp-circle-analyse-lu-fahrzeug'), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id='Y2'), + competence_id='Y2.1', + title='Innerhalb des Handlungsfelds «Fahrzeug» bin ich fähig, die IST-Situation des Kunden mit der geeigneten Gesprächs-/Fragetechnik zu erfassen.', + learning_unit=LearningUnit.objects.get(slug='test-lehrgang-lp-circle-analyse-lu-fahrzeug'), + ) + + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id='Y1'), + competence_id='Y1.3', + title='Innerhalb des Handlungsfelds «Reisen» bin ich fähig, die Ziele und Pläne des Kunden zu ergründen (SOLL).', + learning_unit=LearningUnit.objects.get(slug='test-lehrgang-lp-circle-analyse-lu-reisen'), + ) + + +def create_test_media_library(): + course = Course.objects.get(id=COURSE_TEST_ID) + course_page = CoursePage.objects.get(course_id=COURSE_TEST_ID) + + media_lib_page = MediaLibraryPageFactory( + title='Mediathek', + parent=course_page, + ) + + icons = ['icon-hf-fahrzeug', 'icon-hf-reisen', 'icon-hf-einkommenssicherung', ] + for idx, cat in enumerate(course.coursecategory_set.all()): + overview_icon = icons[(idx + 2) % len(icons)] + introduction_text = ''' +Das Auto ist für viele der grösste Stolz! Es birgt aber auch ein grosses Gefahrenpotenzial. +Dabei geht es bei den heutigen Fahrzeugpreisen und Reparaturkosten rasch um namhafte Summen, +die der Fahrzeugbesitzer und die Fahrzeugbesitzerin in einem grösseren Schadenfall oft nur schwer selbst aufbringen kann.'''.strip() + description_title = 'Das erwartet dich in diesem Handlungsfeld' + description_text = ''' +In diesem berufstypischem Handlungsfeld lernst du alles rund um Motorfahrzeugversicherungen, +wie man sein Auto optimal schützen kann, wie du vorgehst bei einem Fahrzeugwechsel, +welche Aspekte du bei einer Offerte beachten musst und wie du dem Kunden die Lösung präsentierst.'''.strip() + items = [ + ('item', 'Motorfahrzeughaftpflichtversicherung'), + ('item', 'Motorfahrzeugkaskoversicherung'), + ('item', 'Insassenunfallversicherung'), + ] + body_data = json.dumps([ + create_document_collection(), + create_link_collection( + links_dict=[ + create_media_content_link( + LinkBlockFactory(title='Nationales Versicherungsbüro', url='https://www.vbv.ch/')), + create_media_content_link( + LinkBlockFactory(title='Adressen der Strassenverkehrsämter', url='https://www.vbv.ch/')), + ] + ) + ]) + media_category = MediaCategoryPageFactory( + overview_icon=overview_icon, + title=cat.title, + course_category=cat, + parent=media_lib_page, + introduction_text=introduction_text, + description_title=description_title, + description_text=description_text, + items=items, + body=body_data, + ) diff --git a/server/vbv_lernwelt/course/management/commands/create_default_courses.py b/server/vbv_lernwelt/course/management/commands/create_default_courses.py index 1c1c024c..22550740 100644 --- a/server/vbv_lernwelt/course/management/commands/create_default_courses.py +++ b/server/vbv_lernwelt/course/management/commands/create_default_courses.py @@ -1,6 +1,7 @@ import djclick as click from vbv_lernwelt.competence.create_default_competence_profile import create_default_competence_profile +from vbv_lernwelt.course.creators.test_course import create_test_course from vbv_lernwelt.course.creators.versicherungsvermittlerin import create_versicherungsvermittlerin_with_categories from vbv_lernwelt.learnpath.create_default_learning_path import create_default_learning_path from vbv_lernwelt.media_library.create_default_documents import create_default_collections, create_default_documents @@ -19,3 +20,6 @@ def command(): create_default_collections() create_default_documents() create_default_media_library() + + # test course + create_test_course() diff --git a/server/vbv_lernwelt/course/migrations/0001_initial.py b/server/vbv_lernwelt/course/migrations/0001_initial.py index 86b080cf..40fe9d3e 100644 --- a/server/vbv_lernwelt/course/migrations/0001_initial.py +++ b/server/vbv_lernwelt/course/migrations/0001_initial.py @@ -1,8 +1,8 @@ # Generated by Django 3.2.13 on 2022-09-28 12:51 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): @@ -23,7 +23,7 @@ class Migration(migrations.Migration): ('category_name', models.CharField(default='Kategorie', max_length=255, verbose_name='Kategorie-Name')), ], options={ - 'verbose_name': 'Lerngang', + 'verbose_name': 'Lehrgang', }, ), migrations.CreateModel( @@ -33,7 +33,7 @@ class Migration(migrations.Migration): ('course', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='course.course')), ], options={ - 'verbose_name': 'Lerngang-Seite', + 'verbose_name': 'Lehrgang-Seite', }, bases=('wagtailcore.page',), ), diff --git a/server/vbv_lernwelt/course/models.py b/server/vbv_lernwelt/course/models.py index 1e344931..1422b1eb 100644 --- a/server/vbv_lernwelt/course/models.py +++ b/server/vbv_lernwelt/course/models.py @@ -13,7 +13,7 @@ class Course(models.Model): category_name = models.CharField(_('Kategorie-Name'), max_length=255, default='Kategorie') class Meta: - verbose_name = _("Lerngang") + verbose_name = _("Lehrgang") def __str__(self): return f"{self.title}" @@ -35,7 +35,7 @@ class CoursePage(Page): course = models.ForeignKey('course.Course', on_delete=models.PROTECT) class Meta: - verbose_name = _("Lerngang-Seite") + verbose_name = _("Lehrgang-Seite") def full_clean(self, *args, **kwargs): self.slug = find_available_slug(slugify(self.title, allow_unicode=True)) diff --git a/server/vbv_lernwelt/course/tests/test_api.py b/server/vbv_lernwelt/course/tests/test_completion_api.py similarity index 100% rename from server/vbv_lernwelt/course/tests/test_api.py rename to server/vbv_lernwelt/course/tests/test_completion_api.py diff --git a/server/vbv_lernwelt/media_library/tests/test_api.py b/server/vbv_lernwelt/media_library/tests/test_api.py new file mode 100644 index 00000000..f8b65482 --- /dev/null +++ b/server/vbv_lernwelt/media_library/tests/test_api.py @@ -0,0 +1,25 @@ +from rest_framework.test import APITestCase + +from vbv_lernwelt.core.admin import User +from vbv_lernwelt.core.create_default_users import create_default_users +from vbv_lernwelt.course.creators.test_course import create_test_course +from vbv_lernwelt.media_library.models import MediaLibraryPage + + +class MediaCenterAPITestCase(APITestCase): + def setUp(self) -> None: + create_default_users() + create_test_course() + self.user = User.objects.get(username='student') + self.client.login(username='student', password='test') + + def test_get_learnpathPage(self): + slug = 'test-lehrgang-media' + media_library = MediaLibraryPage.objects.get(slug=slug) + response = self.client.get(f'/api/course/page/{slug}/') + + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertEqual(media_library.title, data['title']) + self.assertEqual('Fahrzeug', data['children'][1]['title']) diff --git a/server/vbv_lernwelt/media_library/tests/test_create_default_documents.py b/server/vbv_lernwelt/media_library/tests/test_create_default_documents.py deleted file mode 100644 index 48750c54..00000000 --- a/server/vbv_lernwelt/media_library/tests/test_create_default_documents.py +++ /dev/null @@ -1,25 +0,0 @@ -from django.test import TestCase -from wagtail.core.models import Collection - -from vbv_lernwelt.core.create_default_users import create_default_users -from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail -from vbv_lernwelt.media_library.create_default_documents import create_default_collections, create_default_documents -from vbv_lernwelt.media_library.models import LibraryDocument - - -class TestCreateDefaultDocuments(TestCase): - def setUp(self) -> None: - create_default_users() - create_locales_for_wagtail() - - def test_create_default_collections(self): - create_default_collections() - qs = Collection.objects.filter(name="Versicherungsvermittler/in") - self.assertTrue(qs.exists()) - - def test_create_default_documents(self): - create_default_collections() - - create_default_documents() - qs = LibraryDocument.objects.all() - self.assertTrue(qs.exists()) diff --git a/server/vbv_lernwelt/media_library/tests/test_create_default_media_library.py b/server/vbv_lernwelt/media_library/tests/test_create_default_media_library.py deleted file mode 100644 index 50eb8075..00000000 --- a/server/vbv_lernwelt/media_library/tests/test_create_default_media_library.py +++ /dev/null @@ -1,29 +0,0 @@ -from django.test import TestCase - -from vbv_lernwelt.core.create_default_users import create_default_users -from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail -from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFactory -from vbv_lernwelt.media_library.create_default_media_library import create_default_media_library -from vbv_lernwelt.media_library.models import MediaLibraryPage, MediaCategoryPage - - -class TestCreateDefaultDocuments(TestCase): - def setUp(self) -> None: - create_default_users() - create_locales_for_wagtail() - LearningPathFactory() - create_default_media_library() - - - def test_create_default_media_library(self): - - self.assertEqual(MediaLibraryPage.objects.all().count(), 1) - self.assertEqual(MediaCategoryPage.objects.all().count(), 12) - - def test_create_category_fahrzeug_contains_content(self): - fahrzeug = MediaCategoryPage.objects.get(title='Fahrzeug') - - - - - diff --git a/server/vbv_lernwelt/media_library/tests/test_media_library_factories.py b/server/vbv_lernwelt/media_library/tests/test_media_library_factories.py deleted file mode 100644 index 82a2198e..00000000 --- a/server/vbv_lernwelt/media_library/tests/test_media_library_factories.py +++ /dev/null @@ -1,47 +0,0 @@ -import json - -from django.test import TestCase - -from vbv_lernwelt.core.create_default_users import create_default_users -from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail -from vbv_lernwelt.media_library.models import MediaCategoryPage -from vbv_lernwelt.media_library.tests.media_library_factories import MediaContentCollectionFactory, MediaCategoryPageFactory, \ - LinkBlockFactory, generate_default_content2, collection_body_dict - - -class TestMediaLibraryFactories(TestCase): - def setUp(self) -> None: - create_default_users() - create_locales_for_wagtail() - - def test_content_collection_factory(self): - content_collection = MediaContentCollectionFactory() - self.assertEqual(content_collection.get('title'), 'Links') - self.assertEqual(content_collection.get('collection_type'), 'LearningMedia') - - def test_link_block_factory(self): - link = LinkBlockFactory(title='MyLink') - self.assertEqual(link.get('description'), 'This link is really interesting...') - self.assertEqual(link.get('url'), 'www.example.com') - self.assertEqual(link.get('link_display_text'), 'Link öffnen') - self.assertEqual(link.get('title'), 'MyLink') - - def test_category_contains_content_collection(self): - default_content = generate_default_content2() - default_content['body__content_collection__0__title'] = 'Spidf' - - category = MediaCategoryPageFactory(**default_content) - print(category.body.raw_data) - self.assertNotEqual(category.body.raw_data, []) - - def collection_via_dict_generation(self): - category = MediaCategoryPageFactory() - category.body = json.dumps(collection_body_dict()) - category.save() - category_id = category.id - new_category = MediaCategoryPage.objects.get(id=category_id) - self.assertNotEqual(new_category.body, []) - self.assertNotEqual(new_category.body, []) - - -