Ejemplo n.º 1
0
	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")
Ejemplo n.º 2
0
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()
Ejemplo n.º 3
0
	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")