adapt collector tests to igore trailing content
This commit is contained in:
1 parent
410db12198
commit
d82fb4fa47
4 files changed
+11
-8
No files matched your search
@@ -51,8 +51,9 @@ defmodule FeedReader.CollectorTest do
|
|||||||
assert {:error, {:max_items_exceeded, 1}} = FeedReader.parse_binary(@xml, max_items: 1)
|
assert {:error, {:max_items_exceeded, 1}} = FeedReader.parse_binary(@xml, max_items: 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
test "continues to the terminal parser event before returning a malformed-tail error" do
|
test "ignores malformed content after the root element" do
|
||||||
assert {:error, _reason} = FeedReader.parse_binary(@xml <> "<broken", max_items: 2)
|
assert {:ok, %ParseResult{items: [%Item{uuid: "one"}, %Item{uuid: "two"}]}} =
|
||||||
|
FeedReader.parse_binary(@xml <> "<broken", max_items: 2)
|
||||||
end
|
end
|
||||||
|
|
||||||
test "rejects invalid chunks and binary arguments" do
|
test "rejects invalid chunks and binary arguments" do
|
||||||
|
|||||||
@@ -47,7 +47,9 @@ defmodule FeedReader.RemoteSessionTest do
|
|||||||
assert {:error, {:max_items_exceeded, 1}} = fetch_and_parse(@xml, max_items: 1)
|
assert {:error, {:max_items_exceeded, 1}} = fetch_and_parse(@xml, max_items: 1)
|
||||||
assert download_files() == before
|
assert download_files() == before
|
||||||
|
|
||||||
assert {:error, _reason} = fetch_and_parse(@xml <> "<broken", max_items: 2)
|
assert {:ok, %RemoteResult{items: [%Item{uuid: "one"}, %Item{uuid: "two"}]}} =
|
||||||
|
fetch_and_parse(@xml <> "<broken", max_items: 2)
|
||||||
|
|
||||||
assert download_files() == before
|
assert download_files() == before
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ defmodule FeedReader.StreamingTest do
|
|||||||
assert File.read!(path) == @xml
|
assert File.read!(path) == @xml
|
||||||
end
|
end
|
||||||
|
|
||||||
test "delivers a malformed tail as a terminal error after earlier events" do
|
test "stops at the root and ignores trailing content" do
|
||||||
xml = @xml <> "<broken"
|
xml = @xml <> "<broken"
|
||||||
path = write_temp(xml)
|
path = write_temp(xml)
|
||||||
on_exit(fn -> File.rm(path) end)
|
on_exit(fn -> File.rm(path) end)
|
||||||
@@ -35,8 +35,7 @@ defmodule FeedReader.StreamingTest do
|
|||||||
assert {:feed, %Feed{}} = Enum.at(events, 0)
|
assert {:feed, %Feed{}} = Enum.at(events, 0)
|
||||||
assert {:item, %Item{uuid: "one"}} = Enum.at(events, 1)
|
assert {:item, %Item{uuid: "one"}} = Enum.at(events, 1)
|
||||||
assert {:item, %Item{uuid: "two"}} = Enum.at(events, 2)
|
assert {:item, %Item{uuid: "two"}} = Enum.at(events, 2)
|
||||||
assert {:error, _reason} = Enum.at(events, 3)
|
assert length(events) == 3
|
||||||
assert length(events) == 4
|
|
||||||
assert File.read!(path) == xml
|
assert File.read!(path) == xml
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -18,11 +18,12 @@ defmodule FeedReader.VerifiedParserTest do
|
|||||||
assert File.read!(path) == @xml
|
assert File.read!(path) == @xml
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not return a session for malformed tails or an insufficient pass budget" do
|
test "ignores trailing content but rejects an insufficient pass budget" do
|
||||||
path = write_temp(@xml <> "<broken")
|
path = write_temp(@xml <> "<broken")
|
||||||
on_exit(fn -> File.rm(path) end)
|
on_exit(fn -> File.rm(path) end)
|
||||||
|
|
||||||
assert {:error, %Saxy.ParseError{}} = FeedReader.stream_file_verified(path)
|
assert {:ok, %{events: events}} = FeedReader.stream_file_verified(path)
|
||||||
|
assert length(Enum.to_list(events)) == 2
|
||||||
|
|
||||||
valid_path = write_temp(@xml)
|
valid_path = write_temp(@xml)
|
||||||
on_exit(fn -> File.rm(valid_path) end)
|
on_exit(fn -> File.rm(valid_path) end)
|
||||||
|
|||||||
Reference in new issue
Block a user