/usr/lib/python2.7/dist-packages/rpy2/rinterface/tests/test_Device.py is in python-rpy2 2.8.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | import unittest
import rpy2.rinterface as rinterface
import rpy2.rinterface._rpy_device as rdevice
import sys, os, subprocess, time, tempfile, signal
import tempfile
rinterface.initr()
class AbstractDevice(rdevice.GraphicalDevice):
def __init__(self):
super(AbstractDevice, self).__init__()
def activate(self):
self._activated = True
def deactivate(self):
self._activated = False
def close(self):
pass
class AbstractDeviceTestCase(unittest.TestCase):
def setUp(self):
self.gd = AbstractDevice()
def tearDown(self):
self.gd = None
def _testGetSetBooleanAttr(self, name):
gd = self.gd
setattr(gd, name, True)
self.assertTrue(getattr(gd, name))
setattr(gd, name, False)
self.assertFalse(getattr(gd, name))
self.assertRaises(TypeError, setattr, gd, name, None)
def _testGetSetDoubleAttr(self, name):
gd = self.gd
gd = rdevice.GraphicalDevice()
setattr(gd, name, 100.0)
self.assertTrue(getattr(gd, name))
setattr(gd, name, 0.0)
self.assertFalse(getattr(gd, name))
self.assertRaises(TypeError, setattr, gd, name, None)
def testHasTextUTF8(self):
self._testGetSetBooleanAttr("hasTextUTF8")
def testWantSymbolUTF8(self):
self._testGetSetBooleanAttr("wantSymbolUTF8")
def testLeft(self):
self._testGetSetDoubleAttr("left")
def testRight(self):
self._testGetSetDoubleAttr("right")
def testTop(self):
self._testGetSetDoubleAttr("top")
def testBottom(self):
self._testGetSetDoubleAttr("bottom")
def testCanGenMouseDown(self):
self._testGetSetBooleanAttr("canGenMouseDown")
def testCanGenMouseMove(self):
self._testGetSetBooleanAttr("canGenMouseMove")
def testCanGenKeybd(self):
self._testGetSetBooleanAttr("canGenKeybd")
def testDisplayListOn(self):
self._testGetSetBooleanAttr("displayListOn")
class CodeDevice(rdevice.GraphicalDevice):
def __init__(self, filehandle):
super(CodeDevice, self).__init__()
self._activated = None
self._open = True
self._pagecount = 0
self._file = filehandle
def activate(self):
self._activated = True
def deactivate(self):
self._activated = False
def close(self):
self._activated = None
self._open = False
self._file.close()
def size(self, lrbt):
return (1,2,3,4)
def newpage(self):
self._file.write('#--- new page\n')
self._pagecount = self._pagecount + 1
def line(self, x1, y1, x2, y2):
self._file.write('line(%f, %f, %f, %f)' %(x1, y1, x2, y2))
def polyline(self, x, y):
for xx, yy in zip(x, y):
self._file.write('polyline(%f, %f)' %(xx, yy))
def clip(self, x1, y1, x2, y2):
self._file.write('clip(%f, %f, %f, %f)' %(x1, y1, x2, y2))
class ConcreteDeviceTestCase(unittest.TestCase):
def setUp(self):
#f = tempfile.NamedTemporaryFile()
f = open('/tmp/foo', mode='w')
self.gd = CodeDevice(f)
def tearDown(self):
self.gd.close()
def testActivate(self):
self.assertTrue(self.gd._activated)
#other_gd = ConcreteDeviceTestCase.CodeDevice()
#self.assertFalse(self.gd._activated)
def testClose(self):
self.gd.close()
self.assertFalse(self.gd._open)
def testSize(self):
size = self.gd.size()
self.assertEqual(size, [1,2,3,4])
def testLine(self):
res = rinterface.globalenv.get('plot.new')()
res = rinterface.globalenv.get('lines')(rinterface.IntSexpVector((0, 0)),
rinterface.IntSexpVector((1, 2)))
def suite():
suite = unittest.TestLoader().loadTestsFromTestCase(AbstractDeviceTestCase)
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(ConcreteDeviceTestCase))
return suite
if __name__ == '__main__':
tr = unittest.TextTestRunner(verbosity = 2)
tr.run(suite())
|