def test_news_entry_sorting(directory): oldest_entry = directory / "45.md" newest_entry = directory / "123.md" oldest_entry.write_text("45", encoding="utf-8") newest_entry.write_text("123", encoding="utf-8") results = list(ann.news_entries(directory)) assert len(results) == 2 assert results[0].issue_number == 45 assert results[1].issue_number == 123
def test_news_entry_formatting(directory): issue = 42 normal_entry = directory / f"{issue}.md" nonce_entry = directory / f"{issue}-nonce.md" body = "Hello, world!" normal_entry.write_text(body, encoding="utf-8") nonce_entry.write_text(body, encoding="utf-8") results = list(ann.news_entries(directory)) assert len(results) == 2 for result in results: assert result.issue_number == issue assert result.description == body
def test_news_entry_README_skipping(directory): entry = directory / "README.md" entry.write_text("Hello, world!") assert len(list(ann.news_entries(directory))) == 0
def test_bad_news_entry_file_name(directory): entry = directory / "bunk.md" entry.write_text("Hello, world!") with pytest.raises(ValueError): list(ann.news_entries(directory))
def test_no_bom_allowed(directory): entry = directory / "42.md" entry.write_bytes(codecs.BOM_UTF8 + "Hello, world".encode("utf-8")) with pytest.raises(ValueError): list(ann.news_entries(directory))
def test_only_utf8(directory): entry = directory / "42.md" entry.write_text("Hello, world", encoding="utf-16") with pytest.raises(ValueError): list(ann.news_entries(directory))