Esempio n. 1
0
def test_cell_magic():
    # To simulate '%load_ext gnuplot_kernel';
    # create a main kernel, a gnuplot kernel and
    # a gnuplot magic that uses the gnuplot kernel.
    # Then manually register the gnuplot magic into
    # the main kernel.
    kernel = get_kernel()
    gkernel = GnuplotKernel()
    gmagic = GnuplotMagic(gkernel)
    gkernel.makeSubkernel(kernel)
    kernel.line_magics['gnuplot'] = gmagic
    kernel.cell_magics['gnuplot'] = gmagic

    # inline output
    code = """%%gnuplot
    plot cos(x)
    """
    kernel.do_execute(code)
    assert 'Display Data' in get_log_text(kernel)
    clear_log_text(kernel)

    # file output
    kernel.call_magic('%gnuplot pngcairo size 560,420')
    code = """%%gnuplot
    set output 'cosine.png'
    plot cos(x)
    """
    kernel.do_execute(code)
    assert os.path.exists('cosine.png')
    clear_log_text(kernel)

    remove_files('cosine.png')
def test_misc():
    class TestKernel(MetaKernel):
        def do_execute_file(self, filename):
            self.Print("This language does not support running files")

        def do_function_direct(self, f, arg):
            self.Print("%s(%s)" % (f, self.repr(arg)))

        def repr(self, arg):
            return "XXX"

    kernel = get_kernel(TestKernel)
    assert kernel.do_execute_direct('garbage') is None
    kernel.do_execute_file('hello.txt')
    assert "This language does not support" in get_log_text(kernel)

    clear_log_text(kernel)

    kernel.do_function_direct('hello', 'world')
    text = get_log_text(kernel)
    assert "hello(XXX)" in text, text
    kernel.restart_kernel()

    ret = kernel.do_is_complete('hello\n')
    assert ret == {'status': 'complete'}

    assert kernel.do_inspect('hello', 10) is None
def test_help_magic():
    kernel = get_kernel()
    kernel.do_execute('?%magic', None)
    text = get_log_text(kernel)
    assert '%magic - show installed magics' in text, repr(text)

    kernel.do_execute('%lsmagic??', None)
    text = get_log_text(kernel)
    assert 'class LSMagicMagic' in text

    kernel.do_execute('?', None)
    text = get_log_text(kernel)
    assert 'This is a usage statement.' in text

    kernel.do_execute('?%', None)
    text = get_log_text(kernel)
    assert 'This is a usage statement.' in text

    kernel.do_execute('?%whatwhat', None)
    text = get_log_text(kernel)
    assert "No such line magic 'whatwhat'" in text

    clear_log_text(kernel)

    kernel.do_execute('%%help %magic', None)
    text = get_log_text(kernel)
    assert 'MagicMagic' in text

    kernel.do_execute('%%help\n%python', None)
    text = get_log_text(kernel)
    assert 'PythonMagic' in text
Esempio n. 4
0
def test_file_plots():
    kernel = get_kernel(GnuplotKernel)
    kernel.call_magic('%gnuplot pngcairo size 560, 420')

    # With a non-inline terminal plot gets created
    code = """
    set output 'sine.png'
    plot sin(x)
    """
    kernel.do_execute(code)
    assert os.path.exists('sine.png')
    clear_log_text(kernel)

    # Multiple line statement
    code = """
    set output 'sine-cosine.png'
    plot sin(x),\
         cos(x)
    """
    kernel.do_execute(code)
    assert os.path.exists('sine-cosine.png')

    # Multiple line statement
    code = """
    set output 'tan.png'
    plot tan(x)
    set output 'tan2.png'
    replot
    """
    kernel.do_execute(code)
    assert os.path.exists('tan.png')
    assert os.path.exists('tan2.png')

    remove_files('sine.png', 'sine-cosine.png')
    remove_files('tan.png', 'tan2.png')
Esempio n. 5
0
def test_cell_magic():
    # To simulate '%load_ext gnuplot_kernel';
    # create a main kernel, a gnuplot kernel and
    # a gnuplot magic that uses the gnuplot kernel.
    # Then manually register the gnuplot magic into
    # the main kernel.
    kernel = get_kernel()
    gkernel = GnuplotKernel()
    gmagic = GnuplotMagic(gkernel)
    gkernel.makeSubkernelTo(kernel, kernel.Display)
    kernel.line_magics['gnuplot'] = gmagic
    kernel.cell_magics['gnuplot'] = gmagic

    # inline output
    code = """%%gnuplot
    plot cos(x)
    """
    kernel.do_execute(code)
    assert_true('Display Data' in get_log_text(kernel))
    clear_log_text(kernel)

    # file output
    kernel.call_magic('%gnuplot pngcairo size 560,420')
    code = """%%gnuplot
    set output 'cosine.png'
    plot cos(x)
    """
    kernel.do_execute(code)
    assert_true(os.path.exists('cosine.png'))
    clear_log_text(kernel)
Esempio n. 6
0
def test_cd_magic():
    kernel = get_kernel()
    kernel.do_execute("%cd ~")
    assert os.getcwd() == os.path.expanduser('~'), os.getcwd()
    clear_log_text(kernel)
    kernel.do_execute('%cd')
    assert os.getcwd() in get_log_text(kernel)
Esempio n. 7
0
def test_misc():
    class TestKernel(MetaKernel):
        def do_execute_file(self, filename):
            self.Print("This language does not support running files")

        def do_function_direct(self, f, arg):
            self.Print("%s(%s)" % (f, self.repr(arg)))

        def repr(self, arg):
            return "XXX"

    kernel = get_kernel(TestKernel)
    assert kernel.do_execute_direct('garbage') is None
    kernel.do_execute_file('hello.txt')
    assert "This language does not support" in get_log_text(kernel)

    clear_log_text(kernel)

    kernel.do_function_direct('hello', 'world')
    text = get_log_text(kernel)
    assert "hello(XXX)" in text, text
    kernel.restart_kernel()

    ret = kernel.do_is_complete('hello\n')
    assert ret == {'status': 'complete'}

    assert kernel.do_inspect('hello', 10) is None
Esempio n. 8
0
def test_ls_magic():
    kernel = get_kernel()
    kernel.do_execute("%ls /tmp")
    text = get_log_text(kernel)
    assert text.startswith("/tmp/"), text[:100]
    clear_log_text(kernel)

    kernel.do_execute("%ls /tmp --recursive")
    text = get_log_text(kernel)
    assert text.startswith("/tmp/"), text[:100]
    clear_log_text(kernel)
Esempio n. 9
0
def test_ls_magic():
    kernel = get_kernel()
    kernel.do_execute("%ls /tmp")
    text = get_log_text(kernel)
    assert text.startswith("/tmp/"), text[:100]
    clear_log_text(kernel)

    kernel.do_execute("%ls /tmp --recursive")
    text = get_log_text(kernel)
    assert text.startswith("/tmp/"), text[:100]
    clear_log_text(kernel)
Esempio n. 10
0
def test_ls_magic():
    kernel = get_kernel()
    kernel.do_execute("%ls /tmp")
    text = get_log_text(kernel)
    assert '/tmp/' in text, text[:100]
    clear_log_text(kernel)

    kernel.do_execute("%ls /tmp --recursive")
    text = get_log_text(kernel)
    assert '/tmp' in text, text[:100]
    clear_log_text(kernel)
Esempio n. 11
0
def test_ls_magic():
    kernel = get_kernel()
    kernel.do_execute("%ls /tmp")
    text = get_log_text(kernel)
    assert '/tmp/' in text, text[:100]
    clear_log_text(kernel)

    kernel.do_execute("%ls /tmp --recursive")
    text = get_log_text(kernel)
    assert '/tmp' in text, text[:100]
    clear_log_text(kernel)
Esempio n. 12
0
def test_run_magic():
    kernel = get_kernel(EvalKernel)
    kernel.do_execute("%%run %s" % __file__.replace(".pyc", ".py"))
    kernel.do_execute("TEST")
    text = get_log_text(kernel)
    assert '42' in text, "Didn't run this file"

    clear_log_text(kernel)
    kernel.do_execute("%%run --language python %s" % __file__.replace(".pyc", ".py"))
    kernel.do_execute("TEST")
    text = get_log_text(kernel)
    assert '42' in text, "Didn't run this file"
Esempio n. 13
0
def test_download_magic():
    kernel = get_kernel(EvalKernel)
    kernel.do_execute("%download --filename TEST.txt https://raw.githubusercontent.com/calysto/metakernel/master/LICENSE.txt")
    text = get_log_text(kernel)
    assert "Downloaded 'TEST.txt'" in text, text
    assert os.path.isfile("TEST.txt"), "File does not exist: TEST.txt"

    clear_log_text(kernel)

    kernel.do_execute("%download https://raw.githubusercontent.com/calysto/metakernel/master/LICENSE.txt")
    text = get_log_text(kernel)
    assert "Downloaded 'LICENSE.txt'" in text, text
    assert os.path.isfile("LICENSE.txt"), "File does not exist: LICENSE.txt"
Esempio n. 14
0
def test_run_magic():
    kernel = get_kernel(EvalKernel)
    kernel.do_execute("%%run %s" % __file__.replace(".pyc", ".py"))
    kernel.do_execute("TEST")
    text = get_log_text(kernel)
    assert '42' in text, "Didn't run this file"

    clear_log_text(kernel)
    kernel.do_execute("%%run --language python %s" %
                      __file__.replace(".pyc", ".py"))
    kernel.do_execute("TEST")
    text = get_log_text(kernel)
    assert '42' in text, "Didn't run this file"
Esempio n. 15
0
def test_python_magic4():
    kernel = get_kernel()
    kernel.do_execute('?%python', None)
    assert '%python CODE' in get_log_text(kernel)

    clear_log_text(kernel)

    ret = kernel.do_execute('?%python a', None)
    assert ret['payload'][0]['data']['text/plain'] == 'No help available for "a"'
    ret = kernel.do_execute('?%%python a.b', None)
    assert ret['payload'][0]['data']['text/plain'] == 'No help available for "a.b"'

    ret = kernel.do_execute('??%%python oct', None)
    assert ret['payload'][0]['data']['text/plain'].startswith('oct(number)')
Esempio n. 16
0
def test_latex_magic():
    kernel = get_kernel()
    kernel.do_execute("%latex x_1 = \dfrace{a}{b}")
    text = get_log_text(kernel)
    assert "Display Data" in text

    clear_log_text(kernel)

    kernel.do_execute("""%%latex
            x_1 = \dfrac{a}{b}

            x_2 = a^{n - 1}""")
    text = get_log_text(kernel)
    assert "Display Data" in text
def test_latex_magic():
    kernel = get_kernel()
    kernel.do_execute("%latex $x_1 = \\dfrac{a}{b}$")
    text = get_log_text(kernel)
    assert "Display Data" in text

    clear_log_text(kernel)

    kernel.do_execute("""%%latex
            $x_1 = \\dfrac{a}{b}$

            $x_2 = a^{n - 1}$""")
    text = get_log_text(kernel)
    assert "Display Data" in text
Esempio n. 18
0
def test_python_magic4():
    kernel = get_kernel()
    kernel.do_execute('?%python', None)
    assert '%python CODE' in get_log_text(kernel)

    clear_log_text(kernel)

    ret = kernel.do_execute('?%python a', None)
    assert ret['payload'][0]['data']['text/plain'] == 'No help available for "a"'
    ret = kernel.do_execute('?%%python a.b', None)
    assert ret['payload'][0]['data']['text/plain'] == 'No help available for "a.b"'

    ret = kernel.do_execute('??%%python oct', None)
    assert 'Return the octal representation of an integer' in ret['payload'][0]['data']['text/plain'], ret['payload'][0]['data']['text/plain']
Esempio n. 19
0
def test_python_magic4():
    kernel = get_kernel()
    kernel.do_execute('?%python', None)
    assert '%python CODE' in get_log_text(kernel)

    clear_log_text(kernel)

    ret = kernel.do_execute('?%python a', None)
    assert ret['payload'][0]['data']['text/plain'] == 'No help available for "a"'
    ret = kernel.do_execute('?%%python a.b', None)
    assert ret['payload'][0]['data']['text/plain'] == 'No help available for "a.b"'

    ret = kernel.do_execute('??%%python oct', None)
    assert 'Return the octal representation of an integer' in ret['payload'][0]['data']['text/plain'], ret['payload'][0]['data']['text/plain']
Esempio n. 20
0
def test_python_magic4():
    kernel = get_kernel()
    kernel.do_execute('?%python', None)
    assert '%python CODE' in get_log_text(kernel)

    clear_log_text(kernel)

    ret = kernel.do_execute('?%python a', None)
    assert ret['payload'][0]['data'][
        'text/plain'] == 'No help available for "a"'
    ret = kernel.do_execute('?%%python a.b', None)
    assert ret['payload'][0]['data'][
        'text/plain'] == 'No help available for "a.b"'

    ret = kernel.do_execute('??%%python oct', None)
    assert ret['payload'][0]['data']['text/plain'].startswith('oct(number)')
def test_download_magic():
    kernel = get_kernel(EvalKernel)
    kernel.do_execute(
        "%download --filename TEST.txt https://raw.githubusercontent.com/calysto/metakernel/master/LICENSE.txt"
    )
    text = get_log_text(kernel)
    assert "Downloaded 'TEST.txt'" in text, text
    assert os.path.isfile("TEST.txt"), "File does not exist: TEST.txt"

    clear_log_text(kernel)

    kernel.do_execute(
        "%download https://raw.githubusercontent.com/calysto/metakernel/master/LICENSE.txt"
    )
    text = get_log_text(kernel)
    assert "Downloaded 'LICENSE.txt'" in text, text
    assert os.path.isfile("LICENSE.txt"), "File does not exist: LICENSE.txt"
Esempio n. 22
0
def test_pipe_magic():
    kernel = get_kernel(EvalKernel)
    kernel.do_execute("""

def upper(text):
    return text.upper()

def lower(text):
    return text.lower()

def pl_word(word):
    if len(word) > 3:
        return word[1:] + word[0] + "ay"
    else:
        return word

def piglatin(text):
    return " ".join([pl_word(word) for word in text.split(" ")])

""")
    kernel.do_execute("""%%pipe upper
this is a test
 """)
    text = get_log_text(kernel)
    assert "THIS IS A TEST" in text, ("text: " + text)

    kernel.do_execute("""%%pipe upper | piglatin
this is a test
 """)
    text = get_log_text(kernel)
    assert "HISTay IS A ESTTay" in text, ("text: " + text)

    kernel.do_execute("""%%pipe piglatin | upper
this is a test
 """)
    text = get_log_text(kernel)
    assert "HISTAY IS A ESTTAY" in text, ("text: " + text)

    kernel.do_execute("""%%pipe piglatin | upper | lower
this is a test
 """)
    text = get_log_text(kernel)
    assert "histay is a esttay" in text, ("text: " + text)
    clear_log_text(kernel)
Esempio n. 23
0
def test_help():
    kernel = get_kernel(GnuplotKernel)

    # The help commands should not get
    # stuck in pagers.

    # Fancy notebook help
    code = 'terminal?'
    kernel.do_execute(code)
    text = get_log_text(kernel).lower()
    assert_true('subtopic' in text)
    clear_log_text(kernel)

    # help by gnuplot statement
    code = 'help print'
    kernel.do_execute(code)
    text = get_log_text(kernel).lower()
    assert_true('syntax' in text)
    clear_log_text(kernel)
Esempio n. 24
0
def test_help():
    kernel = get_kernel(GnuplotKernel)

    # The help commands should not get
    # stuck in pagers.

    # Fancy notebook help
    code = 'terminal?'
    kernel.do_execute(code)
    text = get_log_text(kernel).lower()
    assert 'subtopic' in text
    clear_log_text(kernel)

    # help by gnuplot statement
    code = 'help print'
    kernel.do_execute(code)
    text = get_log_text(kernel).lower()
    assert 'syntax' in text
    clear_log_text(kernel)
Esempio n. 25
0
def test_misc():
    class TestKernel(MetaKernel):
        def do_execute_file(self, filename):
            self.Print("This language does not support running files")

    kernel = get_kernel(TestKernel)
    assert kernel.do_execute_direct('garbage') is None
    kernel.do_execute_file('hello.txt')
    assert "This language does not support" in get_log_text(kernel)

    clear_log_text(kernel)

    kernel.do_function_direct('hello', 'world')
    assert "This language does not support" in get_log_text(kernel)
    kernel.restart_kernel()

    ret = kernel.do_is_complete('hello\n')
    assert ret == {'status': 'unknown'}

    assert kernel.do_inspect('hello', 10) is None
Esempio n. 26
0
def test_file_plots():
    kernel = get_kernel(GnuplotKernel)
    kernel.call_magic('%gnuplot pngcairo size 560, 420')

    # With a non-inline terminal plot gets created
    code = """
    set output 'sine.png'
    plot sin(x)
    """
    kernel.do_execute(code)
    assert_true(os.path.exists('sine.png'))
    clear_log_text(kernel)

    # Multiple line statement
    code = """
    set output 'sine-cosine.png'
    plot sin(x),\
         cos(x)
    """
    kernel.do_execute(code)
    assert_true(os.path.exists('sine-cosine.png'))
Esempio n. 27
0
def test_inline_plots():
    kernel = get_kernel(GnuplotKernel)
    kernel.call_magic('%gnuplot inline')

    # inline plot creates data
    code = """
    plot sin(x)
    """
    kernel.do_execute(code)
    text = get_log_text(kernel)
    assert_true('Display Data' in text)
    clear_log_text(kernel)

    # multiple plot statements data
    code = """
    plot sin(x)
    plot cos(x)
    """
    kernel.do_execute(code)
    text = get_log_text(kernel)
    assert_true(text.count('Display Data') == 2)
    clear_log_text(kernel)

    # svg
    kernel.call_magic('%gnuplot inline svg')
    code = """
    plot tan(x)
    """
    kernel.do_execute(code)
    text = get_log_text(kernel)
    assert_true('Display Data' in text)
    clear_log_text(kernel)
Esempio n. 28
0
def test_inline_plots():
    kernel = get_kernel(GnuplotKernel)
    kernel.call_magic('%gnuplot inline')

    # inline plot creates data
    code = """
    plot sin(x)
    """
    kernel.do_execute(code)
    text = get_log_text(kernel)
    assert 'Display Data' in text
    clear_log_text(kernel)

    # multiple plot statements data
    code = """
    plot sin(x)
    plot cos(x)
    """
    kernel.do_execute(code)
    text = get_log_text(kernel)
    assert text.count('Display Data') == 2
    clear_log_text(kernel)

    # svg
    kernel.call_magic('%gnuplot inline svg')
    code = """
    plot tan(x)
    """
    kernel.do_execute(code)
    text = get_log_text(kernel)
    assert 'Display Data' in text
    clear_log_text(kernel)
Esempio n. 29
0
def test_data_block():
    kernel = get_kernel(GnuplotKernel)

    # Good data block
    code = """
$DATA << EOD
# x y
1 1
2 2
3 3
4 4
EOD
plot $DATA
    """
    kernel.do_execute(code)
    text = get_log_text(kernel)
    assert text.count('Display Data') == 1
    clear_log_text(kernel)

    # Badly terminated data block
    bad_code = """
$DATA << EOD
# x y
1 1
2 2
3 3
4 4
EODX
plot $DATA
    """
    kernel.do_execute(bad_code)
    text = get_log_text(kernel)
    assert 'Error' in text
    clear_log_text(kernel)

    # Good code should work after the bad_code
    kernel.do_execute(code)
    text = get_log_text(kernel)
    assert text.count('Display Data') == 1
Esempio n. 30
0
def test_do_execute_meta():
    kernel = get_kernel(EvalKernel)
    kernel.do_execute("~~META~~: reset")
    text = get_log_text(kernel)
    assert "RESET" in text, text
    clear_log_text(kernel)

    kernel.do_execute("~~META~~: stop")
    text = get_log_text(kernel)
    assert "STOP" in text, text
    clear_log_text(kernel)

    kernel.do_execute("~~META~~: step")
    text = get_log_text(kernel)
    assert "STEP" in text, text
    clear_log_text(kernel)

    kernel.do_execute("~~META~~: inspect something")
    text = get_log_text(kernel)
    assert "INSPECT" in text, text
    clear_log_text(kernel)
def test_do_execute_meta():
    kernel = get_kernel(EvalKernel)
    kernel.do_execute("~~META~~: reset")
    text = get_log_text(kernel)
    assert "RESET" in text, text
    clear_log_text(kernel)

    kernel.do_execute("~~META~~: stop")
    text = get_log_text(kernel)
    assert "STOP" in text, text
    clear_log_text(kernel)

    kernel.do_execute("~~META~~: step")
    text = get_log_text(kernel)
    assert "STEP" in text, text
    clear_log_text(kernel)

    kernel.do_execute("~~META~~: inspect something")
    text = get_log_text(kernel)
    assert "INSPECT" in text, text
    clear_log_text(kernel)
Esempio n. 32
0
def test_macro_magic():
    kernel = get_kernel(EvalKernel)
    kernel.do_execute("""%%macro testme
print("ok")
    """, False)
    kernel.do_execute("%macro testme", False)
    text = get_log_text(kernel)
    assert "ok" in text, text
    clear_log_text(kernel)

    kernel.do_execute("%macro -l learned", False)
    text = get_log_text(kernel)
    assert "testme" in text, text
    clear_log_text(kernel)

    kernel.do_execute("%macro -d testme", False)
    kernel.do_execute("%macro -l learned", False)
    text = get_log_text(kernel)
    assert "testme" not in text, text
    clear_log_text(kernel)
Esempio n. 33
0
def test_spell_magic():
    kernel = get_kernel(EvalKernel)
    kernel.do_execute("""%%spell testme
print("ok")
    """, False)
    kernel.do_execute("%spell testme", False)
    text = get_log_text(kernel)
    assert "ok" in text, text
    clear_log_text(kernel)

    kernel.do_execute("%spell -l learned", False)
    text = get_log_text(kernel)
    assert "testme" in text, text
    clear_log_text(kernel)

    kernel.do_execute("%spell -d testme", False)
    kernel.do_execute("%spell -l learned", False)
    text = get_log_text(kernel)
    assert "testme" not in text, text
    clear_log_text(kernel)