[David Kotschessa, Test Podcast] Thank you @brian for an episode back in 2019 "From python script to maintainable package."
I created my very first pip installable package, which is a community provider for faker to create airport data. It's a tiny thing, but it was a great lesson in documentation, setting up tests, packaging, etc.
flitwas definitely the way to go too
[Tony Cappellini, Test Podcast] How do you deal with python3’s end= in the print() function, when using the python logger?
print(‘Python Rocks’, end=‘’)
How can I make the logger replace both of the above prints?
I”m adding the logger to a program where many of the print() calls use end=
From the logger documentation, I don’t see anything like end= for the logger
[Adam Parkin, Test Podcast] So I want to run
coverage.py on my work project, but here’s a wrinkle: most of our tests are integration tests, so they spin up a set of Docker containers (like each REST API is in a separate running container), and then the tests make HTTP calls to the various services and assert on results.
That’s going to mean that coverage won’t see what parts of the services get exercised by tests doesn’t it? Like if I have a test that looks like:
result = requests.get('http://localhost:1234/some/path/on/a/container')
coverage.py\ is running in the container where that test is running and not where the web server is running, all it sees is that the test made a http call to some endpoint somewhere, right? Like there’s no way to tell coverage “oh wait, http://localhost:1234/some/path/on/a/container is actually part of our project, so figure out what code in another container is running and do coverage over that” or is there? Anyone have any experience or ideas on how to get coverage information in this situation?
[Adam Parkin, Test Podcast] Unfortunately in my specific case here that (running the server locally alongside the test) is not an option (or at least not without a lot of work to make that happen, which maybe that’s the answer :shrug).
But yes, effectively it is “test is running on one machine, code under test is running on a different machine”.
[Adam Parkin, Test Podcast] It occurs to me I’m probably misusing the term “integration test” here, in my case my tests are really “full system tests”, so maybe to tweak my question slightly: is it a good idea to generate coverage information for tests that are full system tests, and if so (or at the very least if it’s not a bad idea) how do you achieve that?
Like maybe a more concrete way of thinking of this: say you have a bunch of selenium tests that you execute against your staging environment. You want to get a sense of what parts of the overall system are exercised by those tests and which are not, how would you go about discovering that?
[David Kotschessa, Test Podcast] Say I want to do something crazy with
tox like run...well... like every version of python since 2.7. (It's an experiment and possibly blog article).
I'm confused bout the overlapping domains of:
virtual environments (I use just
tox itself (which, I guess is lke venv, but you can still use it with venv?)
Now I'm reading i might want
pyenv if I want to install all these different versions of python.
What's the simplest way?
[David Kotschessa, Test Podcast] So I guess here's where I'm confused. say I'm in an activated
venv and I install a package, say django - it installs itself in the
venv/bin/whatever folder, but not otherwise on my machine.
The python version I'm using is also in
venv/bin/python (or whatever) based on what version I'm using. Bu it's also installed globally.
So I have python 2.7 (because mac still ships with it) and 3.8 (because that's what I installed)
Soooo say I want to install python 3.2 - is there an installation method that puts it in the venv but does not install globally?