示例#1
0
    def test_multisite_apphooks(self):
        self.apphook_clear()
        site1, _ = Site.objects.get_or_create(pk=1)
        site2, _ = Site.objects.get_or_create(pk=2)
        superuser = get_user_model().objects.create_superuser('admin', '*****@*****.**', 'admin')
        home_site_1 = create_page(
            "home", "nav_playground.html", "en", created_by=superuser, published=True, site=site1
        )
        home_site_2 = create_page(
            "home", "nav_playground.html", "de", created_by=superuser, published=True, site=site2
        )

        page_a_1 = create_page(
            "apphooked-page", "nav_playground.html", "en", created_by=superuser, published=True, parent=home_site_1,
            apphook=NS_APP_NAME, apphook_namespace="instance"
        )
        page_a_2 = create_page(
            "apphooked-page", "nav_playground.html", "de", created_by=superuser, published=True, parent=home_site_1,
        )
        page_b_1 = create_page(
            "apphooked-page", "nav_playground.html", "de", created_by=superuser, published=True, parent=home_site_2,
            site=site2
        )
        form = AdvancedSettingsForm(instance=page_a_1)
        form._site = site1
        self.assertFalse(form._check_unique_namespace_instance("instance"))

        form = AdvancedSettingsForm(instance=page_a_2)
        form._site = site1
        self.assertTrue(form._check_unique_namespace_instance("instance"))

        form = AdvancedSettingsForm(instance=page_b_1)
        form._site = site2
        self.assertFalse(form._check_unique_namespace_instance("instance"))

        self.apphook_clear()