adding
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import datetime
|
||||
|
||||
from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
|
||||
from apps.landing.models import Article
|
||||
|
||||
|
||||
def _make_article(**overrides):
|
||||
defaults = {
|
||||
"slug": "test-article",
|
||||
"title": "عنوان تست",
|
||||
"excerpt": "خلاصه تست",
|
||||
"content_html": "<p>متن تست</p>",
|
||||
"published_at": datetime.date(2020, 1, 1),
|
||||
"is_published": True,
|
||||
}
|
||||
defaults.update(overrides)
|
||||
return Article.objects.create(**defaults)
|
||||
|
||||
|
||||
class ArticlePublishScheduleTests(TestCase):
|
||||
"""published_at یک gate واقعی است — مقالهی is_published=True با تاریخِ
|
||||
آینده نباید تا رسیدن آن تاریخ در سایت دیده شود (انتشار پلکانی/زمانبندیشده)."""
|
||||
|
||||
def test_past_dated_article_appears_in_list(self):
|
||||
_make_article(slug="past-one", published_at=datetime.date(2020, 1, 1))
|
||||
response = self.client.get(reverse("landing:article_list"))
|
||||
self.assertContains(response, "عنوان تست")
|
||||
|
||||
def test_future_dated_article_hidden_from_list(self):
|
||||
future = datetime.date.today() + datetime.timedelta(days=10)
|
||||
_make_article(slug="future-one", published_at=future)
|
||||
response = self.client.get(reverse("landing:article_list"))
|
||||
self.assertNotContains(response, "عنوان تست")
|
||||
|
||||
def test_future_dated_article_detail_is_404(self):
|
||||
future = datetime.date.today() + datetime.timedelta(days=10)
|
||||
article = _make_article(slug="future-two", published_at=future)
|
||||
response = self.client.get(reverse("landing:article_detail", args=[article.slug]))
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_unpublished_article_hidden_regardless_of_date(self):
|
||||
_make_article(slug="draft-one", is_published=False, published_at=datetime.date(2020, 1, 1))
|
||||
response = self.client.get(reverse("landing:article_list"))
|
||||
self.assertNotContains(response, "عنوان تست")
|
||||
|
||||
def test_today_dated_article_is_visible(self):
|
||||
_make_article(slug="today-one", published_at=datetime.date.today())
|
||||
response = self.client.get(reverse("landing:article_list"))
|
||||
self.assertContains(response, "عنوان تست")
|
||||
Reference in New Issue
Block a user