def _genre(args, file: TextIO = sys.stdout): genre: Optional[Genre] = None if args.subparser == "add": genre, created = Genre.from_dict({"name": args.name}) if created: stdout.write( _('Successfully added genre "%(name)s" with id "%(pk)d".') % {"name": genre.name, "pk": genre.pk}, "=", ) genre.print(file) else: stdout.write( _('The genre "%(name)s" already exists with id "%(pk)d", aborting...') % {"name": genre.name, "pk": genre.pk}, "", ) elif args.subparser == "delete": genre = Genre.get(args.genre) if genre: genre.delete() stdout.write( _('Successfully deleted genre with id "%(pk)d".') % {"pk": genre.pk}, "" ) else: stdout.write(_("No genre found."), "") elif args.subparser == "edit": genre = Genre.get(args.genre) if genre: genre.edit(args.field, args.value) stdout.write( _('Successfully edited genre "%(name)s" with id "%(pk)d".') % {"name": genre.name, "pk": genre.pk}, "", ) genre.print(file) else: stdout.write(_("No genre found."), "") elif args.subparser == "info": genre = Genre.get(args.genre) if genre: genre.print(file) else: stdout.write(_("No genre found."), "") elif args.subparser == "list": if args.search: genres = Genre.search(args.search) else: genres = Genre.objects.all() stdout.write([_("Id"), _("Name")], "=", [0.05], file=file) for i, has_next in lookahead(genres): stdout.write([i.id, i.name], "_" if has_next else "=", [0.05], file=file)
def test_get(self): genre, created = Genre.from_dict({"name": "Science Fiction"}) self.assertTrue(created) self.assertIsNotNone(genre.id) genre2 = Genre.get("Science Fiction") self.assertIsNotNone(genre2) self.assertEquals(genre, genre2) genre2 = Genre.get("fiction") self.assertIsNotNone(genre2) self.assertEquals(genre, genre2) genre2 = Genre.get(str(genre.id)) self.assertIsNotNone(genre2) self.assertEquals(genre, genre2)