removes some bugs

This commit is contained in:
artus
2018-11-23 21:38:02 +01:00
parent 93a05046d6
commit 791d3ea022
3 changed files with 28 additions and 9 deletions

View File

@@ -27,31 +27,40 @@ def main(opts):
# TODO: gracefully fail if camera is not writable.
pass
# Store the content list before grabbing
camera_files = camera.read_content()
new_files = {}
if opts.grab: # Grab new files from camera
# TODO: gracefully fail if camera is not readable.
print_success("Grabbing...")
camera_files = camera.read_content()
for ext, backup in backups.items():
bkp_files = backup.read_content(exclude_trash=False)
with_ext = camera_files.filter_by_ext(ext)
new_files = with_ext.difference(bkp_files)
backup.copy_content(new_files)
new_files[ext] = with_ext.difference(bkp_files)
backup.copy_content(new_files[ext])
if ext in imports:
imports[ext].copy_content(new_files)
imports[ext].copy_content(new_files[ext])
if opts.sync: # Synchronize deleted files
print_success("Syncing...")
imported = find_imported()
for ext, backup in backups.items():
with_ext = imported.filter_by_ext(ext)
deleted = backup.difference(with_ext)
deleted = backup.read_content().difference(with_ext)
# Prevent from trashing new (thus not yet imported) files
deleted.difference(new_files[ext])
backup.trash_content(deleted)
if opts.update_card:
deleted = camera.difference(with_ext)
# Use content list before grabbing
# to avoid deleting new files
deleted = camera_files.difference(with_ext)
camera.remove_content(deleted)
if opts.wipe_card: # Wipe the camera memory
pass
if opts.wipe_card: # Remove all files from camera
on_card = camera.read_content()
for ext in backups:
to_delete = on_card.filter_by_ext(ext)
camera.remove_content(to_delete)
if opts.clean_trash: # Clean the bins
print_success("Cleaning...")

View File

@@ -4,6 +4,8 @@ import shutil
import os
import time
from .utils import print_warning
class Content(dict):
@@ -100,4 +102,4 @@ class Backup(Store):
self.trash.move_content(content)
def clean_trash(self):
raise NotImplementedError
print_warning("Fake cleaning !")

View File

@@ -27,6 +27,14 @@ class TestContent(unittest.TestCase):
('test2.jpg', Path("~/test2.jpg")),
('test4.mp4', Path("~/test4.mp4")),
)))
diff = self.second.difference(self.first)
self.assertEqual(
diff,
Content())
def test_difference_with_empty_returns_all(self):
diff = self.first.difference(Content())
self.assertEqual(diff, self.first)
def test_filter_by_ext_that_exists(self):
self.assertEqual(