def print_versions(): print_name('pyscreenshot') print pyscreenshot.__version__ man = BackendLoader() for name in man.all_names: man.force(name) print_name(name) try: x = man.selected() print x.backend_version() except Exception: print 'missing'
def run(force_backend, bbox, bgcolor): color = 255 if bgcolor == 'white' else 0 print force_backend, ' ' * (20 - len(force_backend)), if force_backend in SKIP: print 'SKIP' return BackendLoader().force(force_backend) im = pyscreenshot.grab(bbox=bbox) ls = list(im.getdata()) print 'OK' if all([x == color or x == (color, color, color) for x in ls]) else 'FAIL'
def check_ref(backend, bbox): # some tests fail -> disable return BackendLoader().force(ref) img_ref = pyscreenshot.grab(bbox=bbox) img_debug(img_ref, ref + str(bbox)) BackendLoader().force(backend) im = pyscreenshot.grab(bbox=bbox) img_debug(im, backend + str(bbox)) eq_('RGB', img_ref.mode) eq_('RGB', im.mode) img_diff = ImageChops.difference(img_ref, im) bbox = img_diff.getbbox() if bbox: img_debug(img_diff, 'img_diff' + str(bbox)) eq_(bbox, None, 'different image data %s!=%s bbox=%s' % (ref, backend, bbox))
def run_all(n, to_file, bbox=None): print print 'n=%s' % n, ', to_file:', to_file, ', bounding box:', bbox print '------------------------------------------------------' backends = BackendLoader().all_names for x in backends: try: run(x, n, to_file, bbox) # print 'grabbing by '+x except BackendLoaderError as e: print e
def run_all(bgcolor, display, bbox): print print 'bgcolor=', bgcolor print '-------------------------------------' backends = BackendLoader().all_names for x in backends: try: with Display(size=display, bgcolor=bgcolor): # time.sleep(1) try: run(x, bbox, bgcolor=bgcolor) except BackendLoaderError as e: print e except Exception as e: print e
def run(force_backend, n, to_file, bbox=None): print '%-20s' % force_backend, BackendLoader().force(force_backend) f = tempfile.NamedTemporaryFile(suffix='.png', prefix='test') filename = f.name start = time.time() for i in range(n): if to_file: pyscreenshot.grab_to_file(filename) else: pyscreenshot.grab(bbox=bbox) end = time.time() dt = end - start print '%-4.2g sec' % (dt), '(%5d ms per call)' % (1000.0 * dt / n)
def test_mix(self): man = BackendLoader() man.force('scrot') man.set_preference(['imagemagick', 'scrot']) eq_(man.selected().name, 'scrot')
def test_force(self): man = BackendLoader() for name in ['imagemagick', 'scrot', 'pygtk', 'pyqt', 'wx']: man.force(name) eq_(man.selected().name, name) man.force(None) # for other tests
def test_pref(self): man = BackendLoader() man.force(None) man.set_preference(['imagemagick', 'scrot']) eq_(man.selected().name, 'imagemagick') man.set_preference(['imagemagick', 'scrot', 'imagemagick']) eq_(man.selected().name, 'imagemagick') man.set_preference(['imagemagick']) eq_(man.selected().name, 'imagemagick') man.set_preference(['pygtk', 'imagemagick', 'scrot']) eq_(man.selected().name, 'pygtk') man.set_preference(['scrot', 'imagemagick']) eq_(man.selected().name, 'scrot') man.set_preference(['scrot', 'imagemagick', 'pygtk']) eq_(man.selected().name, 'scrot') man.set_preference(['scrot', 'imagemagick', 'scrot']) eq_(man.selected().name, 'scrot') man.set_preference(['scrot']) eq_(man.selected().name, 'scrot')
def _get_loader(): global BACKEND_LOADER if not BACKEND_LOADER: BACKEND_LOADER = BackendLoader() return BACKEND_LOADER