removes some bugs
This commit is contained in:
@@ -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...")
|
||||
|
||||
@@ -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 !")
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user