Thanks. The Web server aspect of things is pretty minimal. I get ics Files
from a server then process them in different ways. I do need to make sure I
can fetch the file, but beyond that, all the processing is postprocessing.
The config file for the app specifies ics URLs. I could mess around and
make it accept files, but it's not as clean as `request.get(...)`. I'll
figure things out.

On Sun, Jun 22, 2025, 15:52 David Zaslavsky <diaz...@ellipsix.net> wrote:

> No, you didn't miss anything. The typical use case for plugins like this
> is that the responses would be very short and defined in the test code
> itself; for example, here's a test of pytest-httpserver itself where the
> response is just "OK":
> https://github.com/csernazs/pytest-httpserver/blob/master/tests/test_matcher.py.
> It wouldn't be worth putting that in a file.
>
> If you wanted to store the response for some particular test query in a
> file, you could load the file content yourself and give that as the
> response to the server, like this:
>
> expected_response = pathlib.Path("response.txt").read_text()
> httpserver.expect(matcher).respond_with_data(expected_response)
>
> Or if you really wanted a server that will serve arbitrary files based on
> the requested path, you could implement that with a custom handler (
> https://pytest-httpserver.readthedocs.io/en/latest/howto.html#using-custom-request-handler).
> But that would be a pretty odd thing to do in tests, because ideally in
> your tests you (should) know in advance exactly which requests need to be
> handled and what their responses should be. There shouldn't be any need to
> have the server figure out on the fly what it needs to serve, as with a
> real live web server. (And in fact, it's generally valuable to check that
> the code being tested doesn't make any HTTP requests other than the ones
> it's specifically supposed to, which you couldn't do as well if you made
> your server handle arbitrary requests by serving from the filesystem.)
>
> David
>
> On Sunday, June 22nd, 2025 at 12:46 PM, Skip Montanaro <
> skip.montan...@gmail.com> wrote:
>
> Thanks. Plugins (of all stripes, not just pytest) have always seemed a bit
> magical to me. I see nothing in the docs which offer a way to serve test
> files from a directory, similar to the `-d` flag you can offer to `python
> -m http.server`. Did I miss something?
>
> Skip
>
> On Fri, Jun 20, 2025 at 3:51 PM David Zaslavsky <diaz...@ellipsix.net>
> wrote:
>
>> There are some pytest plugins that will handle this for you. In
>> particular pytest-httpserver is implemented the way you want, where it'll
>> start the server once at the beginning of your test session and keep it
>> running. I'd suggest checking that out.
>>
>> Though in general, I think it's better not to worry too much about
>> whether resources are allocated freshly for each test or not, unless you
>> find that your test suite is unacceptably slow because of that resource
>> allocation. It's all too easy to have different tests interfere with each
>> other if you reuse resources, unless you're very careful.
>>
>> David
>>
>>
>> -------- Original Message --------
>> On 6/20/25 6:31 AM, Skip Montanaro via code-quality wrote:
>>
>> I'm struggling trying to understand how Pytest's fixtures can be used to
>> facilitate setup and teardown of long-running resource servers. For
>> example, I want to fire up a little web server (because the tool I'm
>> testing queries a web server IRL) to serve up some simple content. I don't
>> want to start it for each test case, just once and the start, then stop it
>> at the end. All the notes/documentation I've found seem to emphasize
>> fixture's ease-of-use by "requesting" them on a per-test-case basis.
>>
>> Can someone point me to a tutorial which explains how to properly set up
>> and tear down a service at the beginning and end of a test run?
>>
>> Thx,
>>
>> Skip
>>
>>
>
_______________________________________________
code-quality mailing list -- code-quality@python.org
To unsubscribe send an email to code-quality-le...@python.org
https://mail.python.org/mailman3//lists/code-quality.python.org
Member address: arch...@mail-archive.com

Reply via email to