示例#1
0
    def test_parent_language(self):
        parent_page = HomePageFactory.build()
        new_page = HomePageFactory.build(language=language.LanguageFactory(
            code='ar'))

        signals.force_parent_language(page=new_page, parent=parent_page)
        assert new_page.language == parent_page.language
示例#2
0
    def test_get(self, rf):
        with factory.django.mute_signals(signals.post_save):  # Fake `WAGTAILTRANS_SYNC_TREE` setting
            fr = language.LanguageFactory(is_default=False, code='fr', position=2)

        assert TranslatablePage.objects.filter(language=fr).count() == 0

        request = rf.get('/')

        view = TranslationView()
        view.request = request
        response = view.dispatch(request, instance_id=self.last_page.pk, language_code='fr')

        parent_page_qs = view.get_form().fields['parent_page'].queryset

        assert response.status_code == 200
        assert parent_page_qs.count() == 1
        assert parent_page_qs.model is not TranslatablePage
        assert parent_page_qs.first() == self.pages[0]

        french_root = pages.TranslatablePageFactory.build(language=fr, title="French root")
        self.pages[0].add_child(instance=french_root)

        response = view.dispatch(request, instance_id=self.last_page.pk, language_code='fr')

        parent_page_qs = view.get_form().fields['parent_page'].queryset

        # We have a french page to add our new translated page to
        assert parent_page_qs.count() == 1
        assert parent_page_qs.model is TranslatablePage
        assert parent_page_qs[0].language == fr
        assert parent_page_qs[0] == french_root
示例#3
0
 def test_add_language_to_site(self):
     with override_settings(WAGTAILTRANS_SYNC_TREE=True, WAGTAILTRANS_LANGUAGES_PER_SITE=True):
         lang = language.LanguageFactory(is_default=False, code='fr', position=2)
         assert not TranslatablePage.objects.filter(language=lang, canonical_page=self.last_page).exists()
         self.site.sitelanguages.other_languages.add(lang)
         self.site.sitelanguages.save()
         assert TranslatablePage.objects.filter(language=lang, canonical_page=self.last_page).exists()
示例#4
0
    def test_delete_canonical_page(self):
        lang = language.LanguageFactory(is_default=False, code='fr', position=2)

        assert TranslatablePage.objects.filter(language=lang, canonical_page=self.last_page).exists()

        self.last_page.delete()
        assert not TranslatablePage.objects.filter(language=lang, canonical_page=self.last_page).exists()
示例#5
0
    def test_do_not_copy_non_translatable_page(self):
        page = WagtailPageFactory.build(title='test')
        self.last_page.add_child(instance=page)
        lang = language.LanguageFactory(is_default=False,
                                        code='fr',
                                        position=2)

        assert TranslatablePage.objects.filter(
            language=lang, canonical_page=self.last_page).exists()
示例#6
0
    def test_post(self, rf):
        with factory.django.mute_signals(signals.post_save):  # Fake SYNC_TREE=False
            de = language.LanguageFactory(is_default=False, code='de', position=3)

        assert TranslatablePage.objects.filter(language=de).count() == 0

        request = rf.post('/', {'parent_page': self.pages[0].pk, 'copy_from_canonical': True})

        view = TranslationView()
        view.request = request
        response = view.dispatch(request, instance_id=self.pages[1].pk, language_code='de')

        assert response.status_code == 302
        assert response['Location'].endswith('/edit/')
示例#7
0
    def test_site_languages(self):
        site = sites.SiteFactory()
        SiteLanguages.for_site(site)  # Initialize sitelanguages

        default_language = Language.objects.default()
        lang = language.LanguageFactory(code='nl', is_default=False)
        site.sitelanguages.default_language = lang
        site.sitelanguages.save()

        pages = sites.create_site_tree(language=default_language, site=site)
        homepage = HomePageFactory.build(language=default_language)
        pages[0].add_child(instance=homepage)

        signals.force_parent_language(page=homepage, parent=site.root_page)

        assert homepage.language == lang
示例#8
0
    def test_get(self, rf):
        with factory.django.mute_signals(
                signals.post_save):  # Fake `WAGTAILTRANS_SYNC_TREE` setting
            fr = language.LanguageFactory(is_default=False,
                                          code='fr',
                                          position=2)

        assert TranslatablePage.objects.filter(language=fr).count() == 0

        view = translation.Add.as_view()
        response = view(rf.get('/'),
                        page_pk=self.last_page.pk,
                        language_code='fr')

        form = response.context_data['form']
        parent_page_qs = form.fields['parent_page'].queryset
        assert response.status_code == 200

        # The new language has been added,
        # so only the root page should be availabe as parent
        assert parent_page_qs.count() == 1
        assert parent_page_qs.model is not TranslatablePage
        assert parent_page_qs.first() == self.pages[0]

        french_root = pages.TranslatablePageFactory.build(language=fr,
                                                          title="French root")
        self.pages[0].add_child(instance=french_root)

        response = view(rf.get('/'),
                        page_pk=self.last_page.pk,
                        language_code='fr')

        form = response.context_data['form']
        parent_page_qs = form.fields['parent_page'].queryset

        # We have a french page to add our new translated page to
        assert parent_page_qs.count() == 1
        assert parent_page_qs.model is TranslatablePage
        assert parent_page_qs[0].language == fr
        assert parent_page_qs[0] == french_root
示例#9
0
 def test_add_language(self):
     lang = language.LanguageFactory(is_default=False,
                                     code='fr',
                                     position=2)
     assert TranslatablePage.objects.filter(language=lang).count() > 1
示例#10
0
 def setup(self):
     self.language = language.LanguageFactory()