def test_set_name(self): image = Image() image.full_path = "/some/path/name is a string.jpg" image.size = 1234 image.modified = TestConstants.modified_test self.assertEqual(image.modified_time_str, TestConstants.modified_test_str) # Test that an image without captured date retains its name if we want to change only by captured date doc = image.name Folder.set_name(image, name_from_captured_date=True, name_from_modified_date=False, keep_manual_names=False) self.assertEqual(doc, image.name) # An image without captured date but with modified date changes name if we want to change by mod date Folder.set_name(image, name_from_captured_date=False, name_from_modified_date=True, keep_manual_names=False) self.assertEqual(image.name, TestConstants.modified_test_str + '@' + doc) image.name = doc # If the image has a meaningful name, modified date is not prepended if we want to keep manual names Folder.set_name(image, name_from_captured_date=False, name_from_modified_date=True, keep_manual_names=True) self.assertEqual(doc, image.name) # If image has no meaningful name, then modified time IS prepended also if we want to keep manual names image.name = doc = "IMG324342.jpg" Folder.set_name(image, name_from_captured_date=False, name_from_modified_date=True, keep_manual_names=True) self.assertEqual(image.name, TestConstants.modified_test_str + '@' + doc) image.name = doc = "name is a string.jpg" # add now captured date image.captured = TestConstants.captured_test self.assertEqual(image.captured_str, TestConstants.captured_test_str) # if we have a captured date and want to change by it, the whole name is changed Folder.set_name(image, name_from_captured_date=True, name_from_modified_date=False, keep_manual_names=False) self.assertEqual(image.name, TestConstants.captured_test_str + '.' + image.type) # if we want to change by modified name, but we do have captured date, also then captured date is set image.name = doc Folder.set_name(image, name_from_captured_date=False, name_from_modified_date=True, keep_manual_names=False) self.assertEqual(image.name, TestConstants.captured_test_str + '.' + image.type) # if we have some meaningful name, and want to keep it, the captured date is appended to it name, ext = os.path.splitext(doc) image.name = doc Folder.set_name(image, name_from_captured_date=False, name_from_modified_date=False, keep_manual_names=True) self.assertEqual(image.name, name + ' ' + TestConstants.captured_test_str + ext) # if the name is not meaningful, replace it with the captured date even if not asked for image.name = doc = "IMG324342.jpg" name, ext = os.path.splitext(doc) Folder.set_name(image, name_from_captured_date=False, name_from_modified_date=False, keep_manual_names=True) self.assertEqual(image.name, TestConstants.captured_test_str + ext)