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 104 105 106 107
|
"""
A simple test for script recording in Mayavi.
"""
# Author: Prabhu Ramachandran <prabhu@aero.iitb.ac.in>
# Copyright (c) 2008, Enthought, Inc.
# License: BSD Style.
import unittest
from apptools.scripting.api import Recorder, set_recorder
from mayavi.sources.parametric_surface import \
ParametricSurface
from mayavi.modules.outline import Outline
from mayavi.modules.surface import Surface
from mayavi.core.null_engine import NullEngine
class TestScriptRecording(unittest.TestCase):
def setUp(self):
tape = Recorder()
# Set the global recorder.
set_recorder(tape)
self.tape = tape
def tearDown(self):
self.tape.clear()
set_recorder(None)
def test_script_recording(self):
"Does script recording work correctly."
# Create a mayavi pipeline and record it.
tape = self.tape
e = NullEngine()
e.start()
# Start recording.
tape.recording = True
tape.register(e, known=True, script_id='engine')
e.new_scene()
self.assertEqual(tape.lines[-1],
"dummy_viewer = engine.new_scene()")
src = ParametricSurface()
e.add_source(src)
expect = 'from mayavi.sources.parametric_surface '\
'import ParametricSurface'
self.assertEqual(tape.lines[-3], expect)
self.assertEqual(tape.lines[-2],
"parametric_surface = ParametricSurface()")
self.assertEqual(tape.lines[-1],
"engine.add_source(parametric_surface)")
src.function = 'dini'
self.assertEqual(tape.lines[-1],
"parametric_surface.function = 'dini'")
o = Outline()
e.add_module(o)
expect = 'from mayavi.modules.outline import Outline'
self.assertEqual(tape.lines[-3], expect)
self.assertEqual(tape.lines[-2], "outline = Outline()")
self.assertEqual(tape.lines[-1],
"engine.add_module(outline)")
o.actor.property.color = (1,0,0)
self.assertEqual(tape.lines[-1],
"outline.actor.property.color = (1.0, 0.0, 0.0)")
s = Surface()
e.add_module(s)
expect = 'from mayavi.modules.surface import Surface'
self.assertEqual(tape.lines[-3], expect)
self.assertEqual(tape.lines[-2], "surface = Surface()")
self.assertEqual(tape.lines[-1],
"engine.add_module(surface)")
s.actor.property.representation = 'wireframe'
self.assertEqual(tape.lines[-1],
"surface.actor.property.representation = 'wireframe'")
o.actor.property.representation = 'wireframe'
self.assertEqual(tape.lines[-1],
"outline.actor.property.representation = 'wireframe'")
s.actor.property.opacity = 0.5
self.assertEqual(tape.lines[-1],
"surface.actor.property.opacity = 0.5")
s.actor.mapper.scalar_visibility = False
self.assertEqual(tape.lines[-1],
"surface.actor.mapper.scalar_visibility = False")
# Stop recording and test.
tape.unregister(e)
tape.record('#end') # Placeholder
o.actor.property.opacity = 0.5
self.assertEqual(tape.lines[-1], '#end')
s.actor.property.color = (1,0,0)
self.assertEqual(tape.lines[-1], '#end')
s.enable_contours = True
self.assertEqual(tape.lines[-1], '#end')
src.function = 'klein'
self.assertEqual(tape.lines[-1], '#end')
if __name__ == '__main__':
unittest.main()
|