##// END OF EJS Templates
Backport PR #4453: Play nice with App Nap...
Backport PR #4453: Play nice with App Nap Ships @minrk/appnope in `IPython.external`, which uses ctypes to make the appropriate NSProcessInfo calls. It does not disable App Nap outright, rather making the appropriate context manager calls to disable it only around the critical block. The important change is that `QSocketNotifier` is used to trigger event handling in the kernel, rather than a Timer, which should never have been used. should close #4431

File last commit:

r7874:4a6836ce
r13962:cea51739
Show More
formattest.py
63 lines | 1.5 KiB | text/x-python | PythonLexer
# -*- coding: utf8 -*-
import io
import os
import shutil
import tempfile
pjoin = os.path.join
from ..nbbase import (
NotebookNode,
new_code_cell, new_text_cell, new_worksheet, new_notebook
)
from ..nbpy import reads, writes, read, write
from .nbexamples import nb0, nb0_py
def open_utf8(fname, mode):
return io.open(fname, mode=mode, encoding='utf-8')
class NBFormatTest:
"""Mixin for writing notebook format tests"""
# override with appropriate values in subclasses
nb0_ref = None
ext = None
mod = None
def setUp(self):
self.wd = tempfile.mkdtemp()
def tearDown(self):
shutil.rmtree(self.wd)
def assertNBEquals(self, nba, nbb):
self.assertEqual(nba, nbb)
def test_writes(self):
s = self.mod.writes(nb0)
if self.nb0_ref:
self.assertEqual(s, self.nb0_ref)
def test_reads(self):
s = self.mod.writes(nb0)
nb = self.mod.reads(s)
def test_roundtrip(self):
s = self.mod.writes(nb0)
self.assertNBEquals(self.mod.reads(s),nb0)
def test_write_file(self):
with open_utf8(pjoin(self.wd, "nb0.%s" % self.ext), 'w') as f:
self.mod.write(nb0, f)
def test_read_file(self):
with open_utf8(pjoin(self.wd, "nb0.%s" % self.ext), 'w') as f:
self.mod.write(nb0, f)
with open_utf8(pjoin(self.wd, "nb0.%s" % self.ext), 'r') as f:
nb = self.mod.read(f)