fix: use US/Eastern for model datetime defaults and add tests

Made-with: Cursor
This commit is contained in:
cottongin
2026-04-06 21:36:55 -04:00
parent 7c9c32bd0e
commit f7b424b692
2 changed files with 50 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
import json
from datetime import datetime, date
from zoneinfo import ZoneInfo
from src.models import Article, Image, Issue, Setting
@@ -84,3 +85,45 @@ def test_setting_crud(db):
Setting.set("fetch_interval", 4)
assert Setting.get("fetch_interval") == 4
def test_article_default_fetched_at(db):
article = Article(
guid="https://example.com/?p=101",
title="Test Article 2",
author="Test Author",
pub_date=datetime(2026, 4, 6, 12, 0, 0),
categories="[]",
link="https://example.com/test2",
content_html="<p>Test content</p>",
)
db.session.add(article)
db.session.commit()
saved = Article.query.filter_by(guid="https://example.com/?p=101").first()
assert saved.fetched_at.tzinfo is None
# Should be close to current US/Eastern time
local_now = datetime.now(ZoneInfo("America/New_York")).replace(tzinfo=None)
diff = abs((local_now - saved.fetched_at).total_seconds())
assert diff < 10
def test_issue_default_created_at(db):
issue = Issue(
week_start=date(2026, 4, 13),
week_end=date(2026, 4, 19),
cover_method="text",
cover_path="data/issues/cover2.jpg",
epub_path="data/issues/test2.epub",
article_ids="[]",
excluded_article_ids="[]",
status="draft",
)
db.session.add(issue)
db.session.commit()
saved = Issue.query.filter_by(week_start=date(2026, 4, 13)).first()
assert saved.created_at.tzinfo is None
local_now = datetime.now(ZoneInfo("America/New_York")).replace(tzinfo=None)
diff = abs((local_now - saved.created_at).total_seconds())
assert diff < 10