Beispiel #1
0
    def test_generate_meme_first(self):
        nb = self._read_notebook('tests/notebooks/notebook-nomeme.ipynb')
        gen = meme.MemeGenerator()
        newnb = gen.from_notebook_node(nb, copy=True)

        self.assertIsNot(nb, newnb)
        self.assertNotEqual(nb, newnb)
        self.assertTrue('current' in newnb.metadata['lc_notebook_meme'])
        self.assertFalse('history' in newnb.metadata['lc_notebook_meme'])
        self.assertFalse('root_cells' in newnb.metadata['lc_notebook_meme'])

        for cell in nb.cells:
            self.assertFalse('lc_cell_meme' in cell.metadata)

        for prev_cell, cell, next_cell in self._enum_prev_next_items(newnb.cells):
            self.assertTrue('current' in cell.metadata['lc_cell_meme'])
            self.assertFalse('history' in cell.metadata['lc_cell_meme'])
            if prev_cell is not None:
                self.assertEqual(
                    prev_cell.metadata['lc_cell_meme']['current'],
                    cell.metadata['lc_cell_meme']['previous'])
            else:
                self.assertIsNone(cell.metadata['lc_cell_meme']['previous'])
            if next_cell is not None:
                self.assertEqual(
                    next_cell.metadata['lc_cell_meme']['current'],
                    cell.metadata['lc_cell_meme']['next'])
            else:
                self.assertIsNone(cell.metadata['lc_cell_meme']['next'])
Beispiel #2
0
    def test_generate_meme_delete_cell(self):
        nb = self._read_notebook('tests/notebooks/notebook.ipynb')
        removed_cell = nb.cells[1]
        nb.cells.remove(removed_cell)

        gen = meme.MemeGenerator()
        newnb = gen.from_notebook_node(nb, copy=True)

        self.assertTrue('history' in newnb.cells[0].metadata['lc_cell_meme'])
        self.assertTrue('history' in newnb.cells[1].metadata['lc_cell_meme'])
        self.assertEqual(
            newnb.cells[1].metadata['lc_cell_meme']['current'],
            newnb.cells[0].metadata['lc_cell_meme']['next'])
        self.assertEqual(
            newnb.cells[0].metadata['lc_cell_meme']['current'],
            newnb.cells[1].metadata['lc_cell_meme']['previous'])
        self.assertEqual(1, len(newnb.cells[0].metadata['lc_cell_meme']['history']))
        self.assertEqual(1, len(newnb.cells[1].metadata['lc_cell_meme']['history']))
        self.assertEqual(
            newnb.cells[0].metadata['lc_cell_meme']['current'],
            newnb.cells[0].metadata['lc_cell_meme']['history'][0]['current'])
        self.assertEqual(
            newnb.cells[1].metadata['lc_cell_meme']['current'],
            newnb.cells[1].metadata['lc_cell_meme']['history'][0]['current'])
        self.assertEqual(
            removed_cell.metadata['lc_cell_meme']['current'],
            newnb.cells[0].metadata['lc_cell_meme']['history'][0]['next'])
        self.assertEqual(
            removed_cell.metadata['lc_cell_meme']['current'],
            newnb.cells[1].metadata['lc_cell_meme']['history'][0]['previous'])
Beispiel #3
0
    def test_generate_meme_append_cell(self):
        nb = self._read_notebook('tests/notebooks/notebook.ipynb')

        newcell = {
            "cell_type": "markdown",
            "metadata": {
            },
            "source": [
                "new cell"
            ]
        }
        nb.cells.insert(2, newcell)

        gen = meme.MemeGenerator()
        newnb = gen.from_notebook_node(nb, copy=True)

        self.assertTrue('current' in newnb.cells[2].metadata['lc_cell_meme'])
        self.assertFalse('history' in newnb.cells[2].metadata['lc_cell_meme'])
        self.assertEqual(
            newnb.cells[2].metadata['lc_cell_meme']['current'],
            newnb.cells[1].metadata['lc_cell_meme']['next'])
        self.assertEqual(
            newnb.cells[2].metadata['lc_cell_meme']['current'],
            newnb.cells[3].metadata['lc_cell_meme']['previous'])
        self.assertEqual(1, len(newnb.cells[1].metadata['lc_cell_meme']['history']))
        self.assertEqual(1, len(newnb.cells[3].metadata['lc_cell_meme']['history']))
        self.assertEqual(
            newnb.cells[1].metadata['lc_cell_meme']['current'],
            newnb.cells[1].metadata['lc_cell_meme']['history'][0]['current'])
        self.assertEqual(
            newnb.cells[3].metadata['lc_cell_meme']['current'],
            newnb.cells[1].metadata['lc_cell_meme']['history'][0]['next'])
        self.assertEqual(
            newnb.cells[1].metadata['lc_cell_meme']['current'],
            newnb.cells[3].metadata['lc_cell_meme']['history'][0]['previous'])
Beispiel #4
0
 def test_generate_meme_from_notebook_node_not_copy(self):
     nb = self._read_notebook('tests/notebooks/notebook-nomeme.ipynb')
     gen = meme.MemeGenerator()
     oldnb = nbformat.notebooknode.from_dict(nb.copy())
     newnb = gen.from_notebook_node(nb)
     self.assertIs(nb, newnb)
Beispiel #5
0
 def test_generate_meme_from_notebook_node(self):
     nb = self._read_notebook('tests/notebooks/notebook.ipynb')
     gen = meme.MemeGenerator()
     newnb = gen.from_notebook_node(nb, copy=True)
     self.assertIsNot(nb, newnb)
     self.assertEqual(nb, newnb)
Beispiel #6
0
 def test_generate_meme_from_filename(self):
     gen = meme.MemeGenerator()
     nb = gen.from_filename(self._get_filepath('tests/notebooks/notebook.ipynb'))
     srcnb = self._read_notebook('tests/notebooks/notebook.ipynb')
     self.assertEqual(srcnb, nb)