File: test_interactive_unicode.py

package info (click to toggle)
pypy 7.0.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 107,216 kB
  • sloc: python: 1,201,787; ansic: 62,419; asm: 5,169; cpp: 3,017; sh: 2,534; makefile: 545; xml: 243; lisp: 45; awk: 4
file content (103 lines) | stat: -rwxr-xr-x 3,068 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import py
import sys, os, signal, thread, time, codecs
from dotviewer.conftest import option
from dotviewer.strunicode import RAW_ENCODING

SOURCE1 = u"""digraph G{
λ -> b
b -> μ
}
"""

FILENAME = 'graph1.dot'

def setup_module(mod):
    if not option.pygame:
        py.test.skip("--pygame not enabled")
    udir = py.path.local.make_numbered_dir(prefix='usession-dot-', keep=3)
    f = codecs.open(str(udir.join(FILENAME)), 'wb', RAW_ENCODING)
    f.write(SOURCE1)
    f.close()

    from dotviewer import graphclient
    mod.pkgdir = py.path.local(graphclient.this_dir)
    mod.udir = udir

    try:
        del os.environ['GRAPHSERVER']
    except KeyError:
        pass


def test_dotviewer():
    print "=== dotviewer.py %s" % FILENAME
    err = os.system('"%s" "%s"' % (pkgdir.join('dotviewer.py'),
                                   udir.join(FILENAME)))
    assert err == 0

    plain_name = FILENAME.replace('.dot','.plain')
    
    os.system('dot -Tplain "%s" > "%s"' % (udir.join(FILENAME),
                                           udir.join(plain_name)))
    print "=== dotviewer.py %s" % plain_name
    err = os.system('"%s" "%s"' % (pkgdir.join('dotviewer.py'),
                                   udir.join(plain_name)))
    assert err == 0

def test_display_dot_file():
    from dotviewer.graphclient import display_dot_file
    print "=== display_dot_file(%s) with GRAPHSERVER=%s" % (
        FILENAME, os.environ.get('GRAPHSERVER', ''),)
    display_dot_file(udir.join(FILENAME))
    print "=== display_dot_file finished"


def test_graphserver():
    import socket
    s = socket.socket()
    s.listen(1)
    host, port = s.getsockname()     # pick a random free port
    s.close()

    if hasattr(sys, 'pypy_objspaceclass'):
        python = 'python'
    else:
        python = sys.executable

    cmdargs = [python, str(pkgdir.join('graphserver.py')),
               str(port)]
    print '* starting:', ' '.join(cmdargs)
    pid = os.spawnv(os.P_NOWAIT, cmdargs[0], cmdargs)
    try:
        time.sleep(1)    # hack - wait a bit to make sure the server is up
        os.environ['GRAPHSERVER'] = '%s:%d' % (host, port)
        try:
            test_display_dot_file()
        finally:
            del os.environ['GRAPHSERVER']
    finally:
        os.kill(pid, signal.SIGTERM)

def test_colors():
    from dotviewer import graphpage, graphclient
    class MyPage(graphpage.DotFileGraphPage):
        def compute(self, dotfile):
            super(MyPage, self).compute(dotfile)
            self.links = {'v2721': 'Hello world',
                          'v2720': ('Something green', (0, 192, 0)),
                          }
    dotfile = str(udir.join(FILENAME))
    page = MyPage(dotfile)
    graphclient.display_page(page)

def test_fixedfont():
    from dotviewer import graphpage, graphclient
    class MyPage(graphpage.DotFileGraphPage):
        fixedfont = True
    dotfile = str(udir.join(FILENAME))
    page = MyPage(dotfile)
    page.fixedfont = True
    graphclient.display_page(page)