Loading kilter/service/session.py +3 −3 Original line number Diff line number Diff line Loading @@ -445,16 +445,16 @@ class HeadersAccessor(AsyncContextManager["HeaderIterator"]): case Position(subject="end"): index = len(self._table) case Before(): index = self._table.index(position.subject) + 1 index = self._table.index(position.subject) case After(): # pragma: no-branch index = self._table.index(position.subject) + 2 index = self._table.index(position.subject) + 1 case _: raise TypeError("Expect a Position") if index >= len(self._table): await self._editor.asend(AddHeader(header.name, header.value)) self._table.append(header) else: await self._editor.asend(InsertHeader(index, header.name, header.value)) await self._editor.asend(InsertHeader(index + 1, header.name, header.value)) self._table.insert(index, header) Loading tests/test_header_accessor.py +5 −5 Original line number Diff line number Diff line Loading @@ -248,7 +248,7 @@ class HeaderAccessorTests(AsyncTestCase): await session.deliver(EndOfHeaders()) await session.deliver(EndOfMessage(b"")) sender._asend.assert_awaited_with(InsertHeader(0, "Ham", b"and eggs")) sender._asend.assert_awaited_with(InsertHeader(1, "Ham", b"and eggs")) assert result == [ Header("Ham", b"and eggs"), Header("Spam", b"spam spam spam"), Loading Loading @@ -311,7 +311,7 @@ class HeaderAccessorTests(AsyncTestCase): await session.deliver(EndOfHeaders()) await session.deliver(EndOfMessage(b"")) sender._asend.assert_awaited_with(InsertHeader(1, "Ham", b"and eggs")) sender._asend.assert_awaited_with(InsertHeader(2, "Ham", b"and eggs")) assert result == [ Header("Spam", b"spam spam spam"), Header("Ham", b"and eggs"), Loading Loading @@ -344,7 +344,7 @@ class HeaderAccessorTests(AsyncTestCase): await session.deliver(EndOfHeaders()) await session.deliver(EndOfMessage(b"")) sender._asend.assert_awaited_with(InsertHeader(1, "Ham", b"and eggs")) sender._asend.assert_awaited_with(InsertHeader(2, "Ham", b"and eggs")) assert result == [ Header("Spam", b"spam spam spam"), Header("Ham", b"and eggs"), Loading Loading @@ -415,8 +415,8 @@ class HeaderAccessorTests(AsyncTestCase): await session.deliver(EndOfMessage(b"")) sender._asend.assert_has_awaits([ call(InsertHeader(1, "Ham", b"and eggs")), call(InsertHeader(2, "Ham", b"and spam")), call(InsertHeader(2, "Ham", b"and eggs")), call(InsertHeader(3, "Ham", b"and spam")), ]) assert result == [ Header("Spam", b"spam spam spam"), Loading Loading
kilter/service/session.py +3 −3 Original line number Diff line number Diff line Loading @@ -445,16 +445,16 @@ class HeadersAccessor(AsyncContextManager["HeaderIterator"]): case Position(subject="end"): index = len(self._table) case Before(): index = self._table.index(position.subject) + 1 index = self._table.index(position.subject) case After(): # pragma: no-branch index = self._table.index(position.subject) + 2 index = self._table.index(position.subject) + 1 case _: raise TypeError("Expect a Position") if index >= len(self._table): await self._editor.asend(AddHeader(header.name, header.value)) self._table.append(header) else: await self._editor.asend(InsertHeader(index, header.name, header.value)) await self._editor.asend(InsertHeader(index + 1, header.name, header.value)) self._table.insert(index, header) Loading
tests/test_header_accessor.py +5 −5 Original line number Diff line number Diff line Loading @@ -248,7 +248,7 @@ class HeaderAccessorTests(AsyncTestCase): await session.deliver(EndOfHeaders()) await session.deliver(EndOfMessage(b"")) sender._asend.assert_awaited_with(InsertHeader(0, "Ham", b"and eggs")) sender._asend.assert_awaited_with(InsertHeader(1, "Ham", b"and eggs")) assert result == [ Header("Ham", b"and eggs"), Header("Spam", b"spam spam spam"), Loading Loading @@ -311,7 +311,7 @@ class HeaderAccessorTests(AsyncTestCase): await session.deliver(EndOfHeaders()) await session.deliver(EndOfMessage(b"")) sender._asend.assert_awaited_with(InsertHeader(1, "Ham", b"and eggs")) sender._asend.assert_awaited_with(InsertHeader(2, "Ham", b"and eggs")) assert result == [ Header("Spam", b"spam spam spam"), Header("Ham", b"and eggs"), Loading Loading @@ -344,7 +344,7 @@ class HeaderAccessorTests(AsyncTestCase): await session.deliver(EndOfHeaders()) await session.deliver(EndOfMessage(b"")) sender._asend.assert_awaited_with(InsertHeader(1, "Ham", b"and eggs")) sender._asend.assert_awaited_with(InsertHeader(2, "Ham", b"and eggs")) assert result == [ Header("Spam", b"spam spam spam"), Header("Ham", b"and eggs"), Loading Loading @@ -415,8 +415,8 @@ class HeaderAccessorTests(AsyncTestCase): await session.deliver(EndOfMessage(b"")) sender._asend.assert_has_awaits([ call(InsertHeader(1, "Ham", b"and eggs")), call(InsertHeader(2, "Ham", b"and spam")), call(InsertHeader(2, "Ham", b"and eggs")), call(InsertHeader(3, "Ham", b"and spam")), ]) assert result == [ Header("Spam", b"spam spam spam"), Loading