import os import sys import shutil import subprocess from __main__ import default from tasks import * from taskinit import * import unittest ''' Unit tests for task viewer. It tests the following parameters: infile: image to load displaytype: how the image should be displayed channel: which channel of the cube should be displayed outdpi: resolution of the output gui: no gui should be displayed ''' class viewer_test1(unittest.TestCase): # Input and output names img = 'test_image' def setUp(self): self.res = None self.chksum = None self.uname = os.uname()[0] if self.uname == 'Linux' : self.chksum = '/usr/bin/md5sum' elif self.uname == 'Darwin' : self.chksum = '/sbin/md5' if self.chksum is None or not os.path.exists(self.chksum) : raise RuntimeError("no md5 checksum program is available") default(viewer) if (os.path.exists(self.img)): os.system('rm -rf ' + self.img) datapath = os.environ.get('CASAPATH').split()[0] + '/data/demo/Images/' shutil.copytree(datapath+self.img, self.img) def tearDown(self): if (os.path.exists(self.img)): os.system('rm -rf ' + self.img) #os.system('rm -f test??.png') def getchecksum(self,img): if self.uname == 'Linux' : proc = subprocess.Popen(self.chksum + ' ' + img,stdout=subprocess.PIPE,shell=True) outstr = repr(proc.communicate()[0]).split()[0] return outstr.split("'")[1] elif self.uname == 'Darwin' : proc = subprocess.Popen(self.chksum + ' ' + img,stdout=subprocess.PIPE,shell=True) outstr = repr(proc.communicate()[0]).split() last_element = outstr[len(outstr)-1].split('\\') return last_element[0] return None def test1(self): '''Viewer 1: create png (default size, channel 0)''' outfile='test01.png' viewer(infile=self.img,outfile=outfile,gui=False) self.assertEqual(self.getchecksum(outfile),'e55d704ed0694d59dbf1fb0c01f299f8') def test2(self): '''Viewer 2: create png (default size, channel 3)''' outfile='test02.png' viewer(infile=self.img,outfile=outfile,channel=3,gui=False) self.assertEqual(self.getchecksum(outfile),'76ed16f68ca216a8dd34c0409fed554c') def test3(self): '''Viewer 3: create png (default size, channel 3, zoom=2)''' outfile='test03.png' viewer(infile=self.img,outfile=outfile,channel=3,zoom=2,gui=False) self.assertEqual(self.getchecksum(outfile),'994937a15c8e0949bf640aa575a04bd7') def test4(self): '''Viewer 4: create png (default size, channel 3, outscale=3)''' outfile='test04.png' viewer(infile=self.img,outfile=outfile,channel=3,outscale=3.0,gui=False) self.assertEqual(self.getchecksum(outfile),'1cc14fc0a82deb87755b5f45c0dcc352') def suite(): ## test requires X11 virtual frame buffer... if os.uname()[0] != 'Darwin' : return [viewer_test1] else: return [ ]