nteract / testbook

🧪 📗 Unit test your Jupyter Notebooks the right way
https://testbook.readthedocs.io
BSD 3-Clause "New" or "Revised" License
416 stars 37 forks source link

Add support for SKIPPING cells' execution #141

Open SagiPolaczek opened 2 years ago

SagiPolaczek commented 2 years ago

Hey, First, great open source project.

I suggest the following feature: Currently to execute the entire notebook we can do:

    def test_notebook(self):
        notebook_path = "fuse_examples/tutorials/hello_world/hello_world.ipynb"
        # Execute the whole notebook and save it as an object
        with testbook(notebook_path, execute=True, timeout=600) as tb:

Now, if we want to execute only the first cell, we shall do:

    def test_notebook(self):
        notebook_path = "fuse_examples/tutorials/hello_world/hello_world.ipynb"
        # Execute the whole notebook and save it as an object
        with testbook(notebook_path, execute=[0], timeout=600) as tb:

But what if we want to execute the entire notebook besides the first cell ??? Currently it has to be as follow:

    def test_notebook(self):
        NUM_OF_CELLS = 'some number'
        notebook_path = "fuse_examples/tutorials/hello_world/hello_world.ipynb"
        # Execute the whole notebook and save it as an object
        with testbook(notebook_path, execute=range(1, NUM_OF_CELLS + 1), timeout=600) as tb:

But A MUCH CLEANER APPROACH would be:

    def test_notebook(self):
        notebook_path = "fuse_examples/tutorials/hello_world/hello_world.ipynb"
        # Execute the whole notebook and save it as an object
        with testbook(notebook_path, skip=[0], timeout=600) as tb:
MSeal commented 2 years ago

That's a good idea to add and should be an easy change. If you have interest in opening a PR for it I can review quickly, otherwise I'll tag it for the next interested developer who has time to make it a reality :)

SagiPolaczek commented 2 years ago

That's a good idea to add and should be an easy change. If you have interest in opening a PR for it I can review quickly, otherwise I'll tag it for the next interested developer who has time to make it a reality :)

I'll try to do it in the next couple of days :)

SagiPolaczek commented 2 years ago

@MSeal Any updates? :)