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'])
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'])
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'])
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)
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)
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)