docs: Update Phase 0 with specific test fix requirements

Per ADR-012, Phase 0 now specifies:
- 5 tests to REMOVE (broken multiprocessing)
- 4 tests to FIX (brittle assertions)
- 1 test to RENAME (misleading name)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-16 20:45:41 -07:00
parent 9dcc5c5710
commit 0acefa4670
8 changed files with 325 additions and 72 deletions

View File

@@ -68,8 +68,12 @@ class TestExplicitEndpoints:
response = client.get('/feed.rss')
assert response.status_code == 200
assert response.headers['Content-Type'] == 'application/rss+xml; charset=utf-8'
assert b'<?xml version="1.0" encoding="UTF-8"?>' in response.data
assert b'<rss version="2.0"' in response.data
# Check for XML declaration (quotes may be single or double)
assert b'<?xml version=' in response.data
assert b'encoding=' in response.data
# Check for RSS element (version attribute may be at any position)
assert b'<rss' in response.data
assert b'version="2.0"' in response.data
def test_feed_atom_endpoint(self, client):
"""GET /feed.atom returns ATOM feed"""
@@ -95,8 +99,12 @@ class TestExplicitEndpoints:
response = client.get('/feed.xml')
assert response.status_code == 200
assert response.headers['Content-Type'] == 'application/rss+xml; charset=utf-8'
assert b'<?xml version="1.0" encoding="UTF-8"?>' in response.data
assert b'<rss version="2.0"' in response.data
# Check for XML declaration (quotes may be single or double)
assert b'<?xml version=' in response.data
assert b'encoding=' in response.data
# Check for RSS element (version attribute may be at any position)
assert b'<rss' in response.data
assert b'version="2.0"' in response.data
class TestContentNegotiation:
@@ -107,7 +115,8 @@ class TestContentNegotiation:
response = client.get('/feed', headers={'Accept': 'application/rss+xml'})
assert response.status_code == 200
assert response.headers['Content-Type'] == 'application/rss+xml; charset=utf-8'
assert b'<rss version="2.0"' in response.data
assert b'<rss' in response.data
assert b'version="2.0"' in response.data
def test_accept_atom(self, client):
"""Accept: application/atom+xml returns ATOM"""
@@ -137,14 +146,16 @@ class TestContentNegotiation:
response = client.get('/feed', headers={'Accept': '*/*'})
assert response.status_code == 200
assert response.headers['Content-Type'] == 'application/rss+xml; charset=utf-8'
assert b'<rss version="2.0"' in response.data
assert b'<rss' in response.data
assert b'version="2.0"' in response.data
def test_no_accept_header(self, client):
"""No Accept header defaults to RSS"""
response = client.get('/feed')
assert response.status_code == 200
assert response.headers['Content-Type'] == 'application/rss+xml; charset=utf-8'
assert b'<rss version="2.0"' in response.data
assert b'<rss' in response.data
assert b'version="2.0"' in response.data
def test_quality_factor_atom_wins(self, client):
"""Higher quality factor wins"""
@@ -250,6 +261,10 @@ class TestBackwardCompatibility:
def test_feed_xml_contains_rss(self, client):
"""GET /feed.xml contains RSS XML"""
response = client.get('/feed.xml')
assert b'<?xml version="1.0" encoding="UTF-8"?>' in response.data
assert b'<rss version="2.0"' in response.data
# Check for XML declaration (quotes may be single or double)
assert b'<?xml version=' in response.data
assert b'encoding=' in response.data
# Check for RSS element (version attribute may be at any position)
assert b'<rss' in response.data
assert b'version="2.0"' in response.data
assert b'</rss>' in response.data