summaryrefslogtreecommitdiff
path: root/bin/reportlab/test/test_lib_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/reportlab/test/test_lib_utils.py')
-rw-r--r--bin/reportlab/test/test_lib_utils.py115
1 files changed, 115 insertions, 0 deletions
diff --git a/bin/reportlab/test/test_lib_utils.py b/bin/reportlab/test/test_lib_utils.py
new file mode 100644
index 00000000000..d3e6031356e
--- /dev/null
+++ b/bin/reportlab/test/test_lib_utils.py
@@ -0,0 +1,115 @@
+"""Tests for reportlab.lib.utils
+"""
+import os
+import reportlab
+from reportlab.test import unittest
+from reportlab.test.utils import makeSuiteForClasses, printLocation
+from reportlab.lib import colors
+from reportlab.lib.utils import recursiveImport, recursiveGetAttr, recursiveSetAttr, rl_isfile, \
+ isCompactDistro
+
+class ImporterTestCase(unittest.TestCase):
+ "Test import utilities"
+ count = 0
+
+ def setUp(self):
+ from time import time
+ from reportlab.lib.utils import get_rl_tempdir
+ s = `int(time())` + `self.count`
+ self.__class__.count += 1
+ self._tempdir = get_rl_tempdir('reportlab_test','tmp_%s' % s)
+ _testmodulename = os.path.join(self._tempdir,'test_module_%s.py' % s)
+ f = open(_testmodulename,'w')
+ f.write('__all__=[]\n')
+ f.close()
+ self._testmodulename = os.path.splitext(os.path.basename(_testmodulename))[0]
+
+ def tearDown(self):
+ from shutil import rmtree
+ rmtree(self._tempdir,1)
+
+ def test1(self):
+ "try stuff known to be in the path"
+ m1 = recursiveImport('reportlab.pdfgen.canvas')
+ import reportlab.pdfgen.canvas
+ assert m1 == reportlab.pdfgen.canvas
+
+ def test2(self):
+ "try under a well known directory NOT on the path"
+ D = os.path.join(os.path.dirname(reportlab.__file__), 'tools','pythonpoint')
+ fn = os.path.join(D,'stdparser.py')
+ if rl_isfile(fn) or rl_isfile(fn+'c') or rl_isfile(fn+'o'):
+ m1 = recursiveImport('stdparser', baseDir=D)
+
+ def test3(self):
+ "ensure CWD is on the path"
+ try:
+ cwd = os.getcwd()
+ os.chdir(self._tempdir)
+ m1 = recursiveImport(self._testmodulename)
+ finally:
+ os.chdir(cwd)
+
+ def test4(self):
+ "ensure noCWD removes current dir from path"
+ try:
+ cwd = os.getcwd()
+ os.chdir(self._tempdir)
+ import sys
+ try:
+ del sys.modules[self._testmodulename]
+ except KeyError:
+ pass
+ self.assertRaises(ImportError,
+ recursiveImport,
+ self._testmodulename,
+ noCWD=1)
+ finally:
+ os.chdir(cwd)
+
+ def test5(self):
+ "recursive attribute setting/getting on modules"
+ import reportlab.lib.units
+ inch = recursiveGetAttr(reportlab, 'lib.units.inch')
+ assert inch == 72
+
+ recursiveSetAttr(reportlab, 'lib.units.cubit', 18*inch)
+ cubit = recursiveGetAttr(reportlab, 'lib.units.cubit')
+ assert cubit == 18*inch
+
+ def test6(self):
+ "recursive attribute setting/getting on drawings"
+ from reportlab.graphics.charts.barcharts import sampleH1
+ drawing = sampleH1()
+ recursiveSetAttr(drawing, 'barchart.valueAxis.valueMax', 72)
+ theMax = recursiveGetAttr(drawing, 'barchart.valueAxis.valueMax')
+ assert theMax == 72
+
+ def test7(self):
+ "test open and read of a simple relative file"
+ from reportlab.lib.utils import open_and_read
+ b = open_and_read('../docs/images/Edit_Prefs.gif')
+
+ def test8(self):
+ "test open and read of a relative file: URL"
+ from reportlab.lib.utils import open_and_read
+ b = open_and_read('file:../docs/images/Edit_Prefs.gif')
+
+ def test9(self):
+ "test open and read of an http: URL"
+ from reportlab.lib.utils import open_and_read
+ b = open_and_read('http://www.reportlab.com/rsrc/encryption.gif')
+
+ def test10(self):
+ "test open and read of a simple relative file"
+ from reportlab.lib.utils import open_and_read, getStringIO
+ b = getStringIO(open_and_read('../docs/images/Edit_Prefs.gif'))
+ b = open_and_read(b)
+
+def makeSuite():
+ return makeSuiteForClasses(ImporterTestCase)
+
+
+if __name__ == "__main__": #noruntests
+ unittest.TextTestRunner().run(makeSuite())
+ printLocation()