Add a few more of these percent-style notebook delimiters and comments and a heading and that'd be a notebook:
# %% ```python # %% # To run tests in a notebook with Pytest, there's ipytest: # https://github.com/chmp/ipytest !pip install ipytest # %% import ipytest ipytest.autoconfig() # %% %%ipytest -qq # This assertion will be run with `pytest`, # so there will be a useful AssertionError: assert "str a" == "str b" # %% import pytest with pytest.raises(AssertionError): assert True == False # %% %%ipytest -qq import unittest class TestAssertions(unittest.TestCase): def test_assertRaises(): with self.assertRaises(AssertionError): assert True == False # %% %%ipytest -qq import unittest test = unittest.TestCase() with test.assertRaises(AssertionError): assert True == False ``` Are notebook development skills favored over coverage-tested modules, with *tests* in a separate directory or in the same directory; test_*.py? On Sun, Jun 22, 2025, 2:13 PM Jorge Garcia <[email protected]> wrote: > Share code on github is all well and good, but sharing in a Jupyter > Notebook such as colab.research.google.com makes it executable in your > browser right away! > > On Sun, Jun 22, 2025, 2:01 PM Wes Turner via Edu-sig <[email protected]> > wrote: > >> Here's the link to that PR, which makes things testable and then verifies >> with test assertions: >> >> https://github.com/4dsolutions/python_camp/pull/4 >> >> ... @staticmethod is for when you want to add a method on a class that >> doesn't take self as the first parameter. >> >> On Sun, Jun 22, 2025, 1:52 PM Wes Turner <[email protected]> wrote: >> >>> How to best phase in Python? >>> >>> It can check your answers every time something is changed: >>> >>> ```py >>> 1+1 >>> >>> print(1+1) >>> >>> x = 1 +1 >>> print(x) >>> >>> 1+1 == True >>> >>> print(1+1 == True) >>> >>> assert 1+1 == True >>> print("It did not raise AssertionError") >>> >>> assert 1+1 == False >>> print("This won't run, because AssertionError is an Exception, and >>> control flow is interrupted on Exception") >>> >>> >>> # %% >>> import unittest >>> test = unittest.TestCase() >>> >>> test.assertEqual(1+1, 0) >>> ``` >>> >>> We verify our assumptions about types and values of parameters and >>> return values at runtime; we check preconditions and post conditions. >>> >>> I am reminded of camper_program.py from 2020: >>> >>> https://mail.python.org/archives/list/[email protected]/message/OYZ2QPDYDFRV2PPJXEOHUTFWFPZVOCJO/ >>> >>> Maybe a good prompt to lock in that automated testing is much more >>> efficient than attempting to manually test everything after every change: >>> >>> "Write your own test assertion library; starting with `def >>> assertEqual(a, b, msg)`" >>> >>> On Sun, Jun 22, 2025, 1:19 PM kirby urner via Edu-sig < >>> [email protected]> wrote: >>> >>>> >>>> From an educator's perspective, how to best phase-in Python is often a >>>> core question. >>>> >>>> One answer is: use it the same way you might use a calculator in the >>>> classroom, but show off why it's better. >>>> >>>> An example (new today) of what I share with my student and peer >>>> faculty, perhaps new to Python: >>>> >>>> >>>> https://github.com/4dsolutions/School_of_Tomorrow/blob/master/smod_play.py >>>> >>>> A mix of Python + geometric content already familiar to those using my >>>> curriculum. >>>> >>>> The docstring itself contains a link to the famous Using Python as a >>>> Calculator tutorial at the Python dot org site. >>>> >>>> Kirby >>>> >>>> _______________________________________________ >>>> Edu-sig mailing list -- [email protected] >>>> To unsubscribe send an email to [email protected] >>>> https://mail.python.org/mailman3//lists/edu-sig.python.org >>>> Member address: [email protected] >>>> >>> _______________________________________________ >> Edu-sig mailing list -- [email protected] >> To unsubscribe send an email to [email protected] >> https://mail.python.org/mailman3//lists/edu-sig.python.org >> Member address: [email protected] >> >
_______________________________________________ Edu-sig mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/edu-sig.python.org Member address: [email protected]
