T-301: SEO 基础(meta description fallback + canonical + sitemap + 40 tests)
This commit is contained in:
+41
-1
@@ -444,4 +444,44 @@ class ArticlePageTests(PageTreeMixin, TestCase):
|
||||
article.related_projects.add(project)
|
||||
|
||||
self.assertEqual(article.related_projects.count(), 1)
|
||||
self.assertEqual(article.related_projects.first().title, "Related Project")
|
||||
self.assertEqual(article.related_projects.first().title, "Related Project")
|
||||
|
||||
|
||||
class SEOTests(PageTreeMixin, TestCase):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
cls.setUpPageTree()
|
||||
cls.lang = Language.objects.create(name="Rust", slug="rust")
|
||||
|
||||
def test_homepage_meta_description(self):
|
||||
resp = self.client.get("/")
|
||||
self.assertContains(resp, '<meta name="description"')
|
||||
|
||||
def test_homepage_canonical(self):
|
||||
resp = self.client.get("/")
|
||||
self.assertContains(resp, 'rel="canonical"')
|
||||
|
||||
def test_project_detail_meta_description(self):
|
||||
project = SkeletonProjectPage(
|
||||
title="SEO Project",
|
||||
slug="seo-project",
|
||||
summary="An SEO test project with detailed description for testing meta tags.",
|
||||
github_url="https://github.com/test/seo",
|
||||
maturity="stable",
|
||||
recommended_for="Testing meta tags",
|
||||
structure_score=4, docs_score=4, tests_score=3,
|
||||
example_score=3, dependency_score=3, incremental_score=3,
|
||||
)
|
||||
self.project_index.add_child(instance=project)
|
||||
project.languages.add(self.lang)
|
||||
project.scenarios.add(self.scenario)
|
||||
project.save()
|
||||
|
||||
resp = self.client.get(project.url)
|
||||
self.assertContains(resp, '<meta name="description"')
|
||||
self.assertContains(resp, "SEO test project")
|
||||
self.assertContains(resp, 'rel="canonical"')
|
||||
|
||||
def test_sitemap_returns_200(self):
|
||||
resp = self.client.get("/sitemap.xml")
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
Reference in New Issue
Block a user