def test_HDRGenerator(self): self.HDRgen = CompositeImage.HDRGenerator() hdr_conf = CompositeImage.HDRConfig('/tmp', prefix='HDRTest') m = mock.MagicMock() with mock.patch('CompositeImage.subprocess.call', m): self.HDRgen(self.CI, hdr_conf) # self.assertTrue(self.CI.getFilelist.called, 'HDRgen did not call CI getFilelist') tif_list = [ os.path.splitext(os.path.basename(img))[0] + '.TIF' for img in self.short_fl ] cmds = [] cmds.append(['align_image_stack', '-atmp', '-p/tmp/HDRTest.pto'] + ['/tmp/TIF/%s' % t for t in tif_list]) cmds.append(['enfuse', '-o/tmp/HDRTest.TIF'] + ['tmp%04d.tif' % i for i, t in enumerate(tif_list)]) for i, method_call in enumerate(m.method_calls): expected = mock.call.call(cmds[i]).call_list() l = len(expected) self.assertEqual(l, 1, "len(expected)=%d, should be 1" % l) self.assertEqual( method_call, expected[0], "call args list:\n%s\nexpected:\n%s" % (method_call, expected))
def test_emptychecker(self): cic = CompositeImage.CompositeImageCollector([]) si1 = CompositeImage.SingleImage(file_list[0]) cic.check(si1) # No other way to add image to a checker si2 = CompositeImage.SingleImage(file_list[1]) cic.check(si2) n_imgs = len(cic.getCompImage()) self.assertEqual(2, n_imgs, 'Empty checker case')
def __call__(self): config = seq_config_dict[self.path] try: collect_seq_strategy = CompositeImage.CollectSeqStrategy() hdrs, single_imgs = collect_seq_strategy.parseDir(self.path, config) # TODO: Még a HDR-eket nem vizsgálja target_dir = config.GetTargetDir() pano_config = CompositeImage.PanoWeakConfig(target_dir, 25) panos, single_imgs = collect_seq_strategy.parseIMGList(single_imgs, pano_config) return (hdrs, panos, single_imgs) except IOError: # handling the case when there are no raw files print "No RAW input to parse in %s" % self.path
def GenerateHDRs(config, directory): symlink = CompositeImage.SymlinkGenerator() ProcessFolder(symlink, config, directory) image_ext = config.GetImageExt() if image_ext == '.tiff': generator = CompositeImage.RawToTifGenerator if image_ext == '.thumb.jpg': generator = CompositeImage.RawToThumbnailGenerator ProcessFolder(generator, config, directory) hdr_gen = CompositeImage.HDRGenerator() ProcessFolder(hdr_gen, config, directory)
def test_timestamp(self): value = [(2012, 10, 05, 12, 23, 34, 0.01)] si = mock.MagicMock() si.__getitem__.side_effect = SingleImageSideEffect(value) (kezdo, veg) = CompositeImage.timestampFromMetadata(si) exp_res = datetime.timedelta(seconds=0.01) self.assertEqual(veg - kezdo, exp_res, "Timedelta: %s instead of %s" % (veg - kezdo, exp_res))
def test_iter(self): sis = {} for i in range(0, 5): sis[file_list[i]] = CompositeImage.SingleImage(file_list[i]) for img in self.ci: self.assertEquals( self.ci[img], sis[img], 'CompositeImage iterator: %s vs %s' % (img, sis[img].name()))
def test_timestamp(self): value = [(2012, 10, 05, 12, 23, 34, 0.01)] si = mock.MagicMock() si.__getitem__.side_effect = SingleImageSideEffect(value) (kezdo, veg) = CompositeImage.timestampFromMetadata(si) exp_res = datetime.timedelta(seconds=0.01) self.assertEqual( veg - kezdo, exp_res, 'Timedelta: %s instead of %s' % (veg - kezdo, exp_res))
def test_addAndlen(self): self.ci[1] = 1 l = len(self.ci) self.assertEqual(1, l, 'Expected len=%d, actual len=%d' % (1, l)) self.ci[1] = 2 l = len(self.ci) self.assertEqual(1, l, 'Expected len=%d, actual len=%d' % (1, l)) self.ci[2] = 3 l = len(self.ci) self.assertEqual(2, l, 'Expected len=%d, actual len=%d' % (1, l)) self.ci.add(CompositeImage.SingleImage(file_list[0])) l = len(self.ci) self.assertEqual(3, l, 'Expected len=%d, actual len=%d' % (1, l)) self.ci.add(CompositeImage.SingleImage(file_list[0])) l = len(self.ci) self.assertEqual(3, l, 'adding the same image again. l=%d' % l)
def test_defaultchecker(self): cic = CompositeImage.CompositeImageCollector([self.false_chkr]) si0 = CompositeImage.SingleImage(file_list[0]) check_result = cic.check(si0) self.assertTrue(check_result, 'default checker does not return True for 1st image') self.assertTrue(1 == len(cic.getCompImage()), 'default check function error at 1st image') si1 = CompositeImage.SingleImage(file_list[3]) check_result = cic.check(si1) self.assertFalse( check_result, 'default checker does not return False for 2nd, nonmatching image') self.assertTrue( len(cic.getCompImage()) == 1, 'default checker added the 2nd image') cic.setCheckers([self.true_chkr]) check_result = cic.check(si0) l = len(cic.getCompImage()) self.assertTrue(check_result, 'Adding the same image again, return value') self.assertEqual(1, l, 'Adding the same image again, amount of images')
def __init__(self, parent, id, title, rootdir): super(TreeCtrlFrame, self).__init__(parent, id, title, wx.DefaultPosition, wx.Size(450, 350)) panel = wx.Panel(self, -1) self.tree = TreeCtrlWithImages(panel, 1, wx.DefaultPosition, (-1,-1), wx.TR_HAS_BUTTONS) self.config_key = rootdir seq_config_dict[rootdir] = CompositeImage.HDRConfig('/tmp') RootItemExpander(self.tree, rootdir) self.updatebutton = wx.Button(self, id=wx.ID_REFRESH) self.updatebutton.Bind(wx.EVT_BUTTON, self.onUpdate) savebutton = wx.Button(self, id=wx.ID_SAVE) savebutton.Bind(wx.EVT_BUTTON, self.onSave) loadbutton = wx.Button(self, id=wx.ID_OPEN) loadbutton.Bind(wx.EVT_BUTTON, self.onLoad) self.stopbutton = wx.Button(self, id=wx.ID_STOP) self.stopbutton.Bind(wx.EVT_BUTTON, self.onStopCommand) self.stopbutton.Disable() button_sizer = wx.BoxSizer(wx.HORIZONTAL) button_sizer.Add(self.updatebutton, 0, wx.EXPAND) button_sizer.Add(savebutton, 0, wx.EXPAND) button_sizer.Add(loadbutton, 0, wx.EXPAND) button_sizer.Add(self.stopbutton, 0, wx.EXPAND) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.tree, 1, wx.EXPAND) panel.SetSizer(sizer) vsizer = wx.BoxSizer(wx.VERTICAL) vsizer.Add(panel, 1, wx.EXPAND) vsizer.Add(button_sizer, 0, wx.EXPAND) self.SetSizer(vsizer) self.Layout() self.tree.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.onItemExpand, id=1) self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.onRightClick, self.tree) self.Bind(wx.EVT_TREE_SEL_CHANGED, self.onClickItem, self.tree) self.Bind(EVT_COMMAND_UPDATE, self.onCommandUpdate) self.Bind(wx.EVT_IDLE, self.OnIdle)
def test_SetGet(self): hdrc = CompositeImage.HDRConfig('/tmp') print dir(hdrc)
def ProcessFolder(cmd, seq_parser_config, directory): collect_seq_strategy = CompositeImage.CollectSeqStrategy() img_seqs, single_imgs = collect_seq_strategy.parseDir( directory, seq_parser_config) ProcessCImgList(cmd, seq_parser_config, img_seqs)
def executeGen(self, gen): if gen == None: gen = CompositeImage.PanoGenerator() task_id = self._ExecCmd(gen) return task_id
def onSymlinks(self, evt): self.ExecCmd(CompositeImage.SymlinkGenerator())
def onCreateSymlink(self,evt): self.expander.executeGen(CompositeImage.SymlinkGenerator())
def setUp(self): self.SI = CompositeImage.SingleImage(file_list[0]) self.CUTname = self.__class__.__name__
def test_equality(self): si2 = CompositeImage.SingleImage(file_list[1]) self.assertFalse(self.SI == si2, "SingleImage for different files") si3 = CompositeImage.SingleImage(file_list[0]) self.assertTrue(self.SI == si3, "SingleImage for the same file")
def test_setNextCollector(self): self.cic = CompositeImage.CompositeImageCollector(self.true_chkr) self.cic.setNextCollector(1) self.assertTrue(1 == self.cic._next_collector, 'Failed to set successor')
def PistisetUpModule(): for fn in file_list: si = CompositeImage.SingleImage(fn) for t in tag_list: si_mock_data[fn][t] = si[t]
import CompositeImage as CI import glob HDRworkdir = '/home/smb/HDR' HDRCollector = CI.CollectHDRStrategy() fl = glob.glob( '/home/smb/git/fotoworkflow/Python toolok/src/test_images/*.CR2') hdrs, sic = HDRCollector.parseFileList(fl) symlink_gen = CI.SymlinkGenerator() symlink_gen.setTargetDir(HDRworkdir) for hdr in hdrs: symlink_gen(hdr.getCompImage()) hdr_gen = CI.HDRGenerator() hdr_gen.setParams(HDRworkdir, '.tiff', 'test') #for i, hdr in enumerate(hdrs): # hdr_gen._prefix = 'test_%d' % i # hdr_gen(hdr.getCompImage()) hdr_gen(hdrs[0].getCompImage())
def setUp(self): self.ci = CompositeImage.CompositeImage() CompositeImage.SingleImage = SingleImage_mock
def _runSymlinkGen(self, tdir): symlinkgen = CompositeImage.SymlinkGenerator() hdr_config = CompositeImage.HDRConfig(tdir) symlinkgen(self.CI, hdr_config)
def setUp(self): self.short_fl = file_list[0:5] self.CI = CompositeImage.CompositeImage() self.CI.getFilelist = mock.MagicMock(name="getFileList") self.CI.getFilelist.return_value = self.short_fl
def setUp(self): self.collect_HDR_strategy = CompositeImage.CollectHDRStrategy()
ProcessFolder(generator, config, directory) hdr_gen = CompositeImage.HDRGenerator() ProcessFolder(hdr_gen, config, directory) config_parser = setup_config_parser() (config, pos_args) = config_parser.parse_args() outdir, indir = process_dirs(config_parser, pos_args) seq_parser_config, seq_generator = process_seq_type(config_parser, config, outdir) if config.generate: cmd = seq_generator if config.use_tiff: seq_parser_config.SetImageExt('.tiff') else: seq_parser_config.SetImageExt('.thumb.jpg') else: cmd = CompositeImage.SymlinkGenerator() if config.recursive: for (p, d, f) in os.walk(indir): print "Processing %s" % p ProcessFolder(cmd, seq_parser_config, p) else: ProcessFolder(cmd, seq_parser_config, indir)
def setUp(self): self.checker_head = CompositeImage.CompositeImageCollector()