def test_sort_identical(self): expected = {"to_download" : [], "to_delete" : []} local_input = [ DropboxImage(0, "image1.png", time.time()), DropboxImage(0, "image2.png", time.time()), DropboxImage(0, "image4.png", time.time()), DropboxImage(0, "image5.png", time.time()), DropboxImage(0, "image6.png", time.time()), DropboxImage(0, "image7.png", time.time()), DropboxImage(0, "image8.png", time.time()) ] dropbox_input = [ {u"path" : u"image1.png", u"revision" : 0}, {u"path" : u"image2.png", u"revision" : 0}, {u"path" : u"image4.png", u"revision" : 0}, {u"path" : u"image5.png", u"revision" : 0}, {u"path" : u"image6.png", u"revision" : 0}, {u"path" : u"image7.png", u"revision" : 0}, {u"path" : u"image8.png", u"revision" : 0} ] result = compare_images_to_sync(dropbox_input, local_input) self.check_image_match(expected, result, "to_download") self.check_image_match(expected, result, "to_delete")
def sync_dropbox_images(): """Compares images on dropbox and locally to sync.""" logger.info("<< Sync dropbox images") system_status.set_current_job(JobEnum.SYNC) facade = DropboxAPIFacade(True) if facade.is_authorized() is False: logger.warning(" + No dropbox account connected when syncing images") logger.info(">> Sync dropbox images aborted") system_status.set_current_job(JobEnum.IDLE) return time.time() external_images = facade.get_appfolder_imagedata() local_images = dropbox_images.get_all_images() logger.info(" + Images found in dropbox account %d" % len(external_images)) logger.info(" + Images found locally %d" % len(local_images)) sorted_images = compare_images_to_sync(external_images, local_images) download_dropbox_images(facade, sorted_images) system_status.set_current_job(JobEnum.IDLE) logger.info(">> Sync dropbox images complete") return time.time()
def test_sort_differance(self): expected = {} expected["to_download"] = [ {u"path" : u"image2.png", u"revision" : 1}, {u"path" : u"image3.png", u"revision" : 0}, {u"path" : u"image4.png", u"revision" : 1}, {u"path" : u"image7.png", u"revision" : 0}, {u"path" : u"image8.png", u"revision" : 3} ] expected["to_delete"] = [ {u"path" : u"image10.png", u"revision" : 0}, {u"path" : u"image11.png", u"revision" : 1}, {u"path" : u"image12.png", u"revision" : 0} ] local_input = [ DropboxImage(0, "image1.png", time.time()), DropboxImage(0, "image2.png", time.time()), DropboxImage(0, "image4.png", time.time()), DropboxImage(0, "image5.png", time.time()), DropboxImage(1, "image6.png", time.time()), DropboxImage(0, "image10.png", time.time()), DropboxImage(0, "image11.png", time.time()), DropboxImage(0, "image12.png", time.time()) ] dropbox_input = [ {u"path" : u"image1.png", u"revision" : 0}, {u"path" : u"image2.png", u"revision" : 1}, {u"path" : u"image3.png", u"revision" : 0}, {u"path" : u"image4.png", u"revision" : 1}, {u"path" : u"image5.png", u"revision" : 0}, {u"path" : u"image6.png", u"revision" : 1}, {u"path" : u"image7.png", u"revision" : 0}, {u"path" : u"image8.png", u"revision" : 3} ] result = compare_images_to_sync(dropbox_input, local_input) self.check_image_match(expected, result, "to_download") self.check_image_match(expected, result, "to_delete")