def test_read_write_rating(self): self.assertTrue(os.path.exists('test.jpg')) Util.set_rating('test.jpg', 4) self.assertEqual(4, Util.get_rating('test.jpg')) Util.set_rating('test.jpg', -1) self.assertEqual(-1, Util.get_rating('test.jpg')) Util.set_rating('test.jpg', 0) self.assertEqual(0, Util.get_rating('test.jpg')) Util.set_rating('test.jpg', None) self.assertEqual(None, Util.get_rating('test.jpg')) try: Util.set_rating('test.jpg', -10) self.assertTrue(False, "Exception expected") except ValueError: pass #OK
def create_rating_menu(file, main_window): def _set_rating_maker(rating): def _set_rating(widget, rating=rating): try: Util.set_rating(file, rating) main_window.on_rating_changed(file) except Exception: logger.exception(lambda: "Could not set EXIF rating") main_window.show_notification( _("Could not set EXIF rating")) return _set_rating try: actual_rating = Util.get_rating(file) except Exception: actual_rating = None rating_menu = Gtk.Menu() for rating in range(5, 0, -1): item = Gtk.CheckMenuItem("\u2605" * rating) item.set_draw_as_radio(True) item.set_active(actual_rating == rating) item.set_sensitive(not item.get_active()) item.connect("activate", _set_rating_maker(rating)) rating_menu.append(item) rating_menu.append(Gtk.SeparatorMenuItem.new()) unrated_item = Gtk.CheckMenuItem(_("Unrated")) unrated_item.set_draw_as_radio(True) unrated_item.set_active(actual_rating is None or actual_rating == 0) unrated_item.set_sensitive(not unrated_item.get_active()) unrated_item.connect("activate", _set_rating_maker(None)) rating_menu.append(unrated_item) rejected_item = Gtk.CheckMenuItem(_("Rejected")) rejected_item.set_draw_as_radio(True) rejected_item.set_active(actual_rating is not None and actual_rating < 0) rejected_item.set_sensitive(not rejected_item.get_active()) rejected_item.connect("activate", _set_rating_maker(-1)) rating_menu.append(rejected_item) rating_menu.show_all() return rating_menu
def create_rating_menu(file, main_window): def _set_rating_maker(rating): def _set_rating(widget, rating=rating): try: Util.set_rating(file, rating) main_window.on_rating_changed(file) except Exception: logger.exception(lambda: "Could not set EXIF rating") main_window.show_notification(_("Could not set EXIF rating")) return _set_rating try: actual_rating = Util.get_rating(file) except Exception: actual_rating = None rating_menu = Gtk.Menu() for rating in xrange(5, 0, -1): item = Gtk.CheckMenuItem(u"\u2605" * rating) item.set_draw_as_radio(True) item.set_active(actual_rating == rating) item.set_sensitive(not item.get_active()) item.connect("activate", _set_rating_maker(rating)) rating_menu.append(item) rating_menu.append(Gtk.SeparatorMenuItem.new()) unrated_item = Gtk.CheckMenuItem(_("Unrated")) unrated_item.set_draw_as_radio(True) unrated_item.set_active(actual_rating is None or actual_rating == 0) unrated_item.set_sensitive(not unrated_item.get_active()) unrated_item.connect("activate", _set_rating_maker(None)) rating_menu.append(unrated_item) rejected_item = Gtk.CheckMenuItem(_("Rejected")) rejected_item.set_draw_as_radio(True) rejected_item.set_active(actual_rating is not None and actual_rating < 0) rejected_item.set_sensitive(not rejected_item.get_active()) rejected_item.connect("activate", _set_rating_maker(-1)) rating_menu.append(rejected_item) rating_menu.show_all() return rating_menu
def test_read_write_rating(self): self.assertTrue(os.path.exists("test.jpg")) self.assertEqual(None, Util.get_rating("test.jpg")) Util.set_rating("test.jpg", None) self.assertEqual(None, Util.get_rating("test.jpg")) Util.set_rating("test.jpg", 4) self.assertEqual(4, Util.get_rating("test.jpg")) Util.set_rating("test.jpg", -1) self.assertEqual(-1, Util.get_rating("test.jpg")) Util.set_rating("test.jpg", 0) self.assertEqual(0, Util.get_rating("test.jpg")) Util.set_rating("test.jpg", None) self.assertEqual(None, Util.get_rating("test.jpg")) try: Util.set_rating("test.jpg", -10) self.assertTrue(False, "Exception expected") except ValueError: pass # OK