Re: import issues
dn via Tutor <[email protected]> Wed, 10 Jan 2024 13:01:33 +1300
| Newsgroups | gmane.comp.python.tutor |
|---|---|
| Organization | DWM |
| Message-ID | <[email protected]> |
On 10/01/24 12:01, Mats Wichmann wrote: > On 1/9/24 15:29, dn via Tutor wrote: >> On 10/01/24 07:06, James Hartley wrote: >>> I admit that I have not internalized how Python's import system >>> works yet. >>> Given the following directory structure: >>> >>> +-project >>> | >>> +-src >>> | | >>> | +-__init__.py >>> | +-foo.py >>> | >>> +-tests >>> | >>> +-test_foo.py >>> >>> Currently, __init__.py is empty. What needs to be placed in __init__.py >> >> Nothing - it's not relevant to this discussion. >> >> >>> and test_foo.py in order for pytest to execute all tests in test_foo.py? >>> pytest is being executed while in the project directory. With: >>> >>> from foo import Foo >>> >>> --or-- >>> >>> from src.foo import Foo >>> >>> defined in test_foo.py, pytest reports "ModuleNotFoundError: No module >>> named 'src'". >>> >>> Any and all comments would be appreciated. Any links to online sources >>> would also be appreciated. Thanks! >> >> I use the latter, except: >> >> - using PyCharm's auto-testing feature. However, 'translating' those >> commands back to manual-typing, would be something like: >> >> python -m pytest /path/project/tests/test_test_foo.py --no-header >> --no-summary -q >> >> - prepending "python -m" >> which configures the sys.path to include current/project directory >> (and hence the "src.foo" relative-addressing) which likely accounts >> for the issues outlined (above) >> >> >> Web.Refs: >> Specifics: >> https://docs.pytest.org/en/7.4.x/explanation/pythonpath.html#pytest-vs-python-m-pytest >> and the rest of the online-manual (although I have to say, even after >> years of use, I find it somewhat overwhelming) >> >> Somewhat easier is the 'book of words', Brian Okken's: >> https://www.amazon.com.au/Python-Testing-pytest-Effective-Scalable/dp/1680508601/ref=sr_1_1?keywords=brian+okken&qid=1704838720&sr=8-1 >> (disclaimer: there are other book-sellers. No commission claimed) >> >> Coursera on-line training: (amongst many 'Python' courses) >> Testing and Debugging Python >> https://www.coursera.org/projects/testing-and-debugging-python >> - is a $paid project approach >> Possibly slightly off (your) topic is LearnQuest's 'TDD >> Specialisation': >> https://www.coursera.org/learn/test-driven-development-overview >> (which I think can be "audited" for $free) >> NB have not completed either, and thus can't comment on quality, nor >> degree of pytest-content. > > Lotsa good stuff here, too: > > https://www.obeythetestinggoat.com/ OK, now you've made me feel bad! Having broadened the OP's scope, this book/web-site should indeed have been mentioned! I met Harry at a London-PUG meeting. Wow, must be a solid 15 years back - started playing with pythonanywhere.com when they were still setting it up/converting from the idea of a Python-based 'better Excel'... (Harry has since moved-on to work on other things) The testing-goat has a lot of grey in his beard these days. However, what other tome covers Python+testing+pytest? [have a 'gathering' on Friday*, to talk about 'testing'. Thus, will be interested in any and all comments, advice, sources...] IIRC the main project-example was web/Django, which some Python-folk may find unnecessarily complicated/unfamiliar. * 1500 NZDT so not a particularly-friendly hour for folk in EUR/UK https://www.meetup.com/nzpug-auckland/events/298338908/ part of our Vacation Exception Handlers gatherings (cf formal PUG-meetings) NB it is summer, as well as the festive/holiday-period down-under. https://danceswithmice.info/Python/2024/VacExcHndlrs.html. -- Regards, =dn _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor