Example #1
0
 def initialize_fields(self):
     super().initialize_fields()
     if not is_course_id_valid(self.session):
         logger.error(
             "Course ID %s does not seem to be a valid Blackboard course",
             self.session.course_id)
         raise SystemExit(1)
Example #2
0
    def execute_from_command_line(cls):
        parser = cls.get_argument_parser()
        args = parser.parse_args()
        blackboard.configure_logging(quiet=args.quiet)

        not_implemented = []
        try:
            try:
                course = cls.get_course(args)
            except NotImplementedError:
                not_implemented.append('Grading.get_course')
            try:
                username = cls.get_username(args)
            except NotImplementedError:
                not_implemented.append('Grading.get_username')
        except Exception as exn:
            parser.error(str(exn))
        if not_implemented:
            parser.error("You must implement %s" %
                         ' and '.join(not_implemented))

        session = cls.session_class('cookies.txt', username, course)
        grading = cls(session)
        grading.override_get_password(args)
        try:
            grading.load('grading.json')
            grading.main(args, session, grading)
        except ParserError as exn:
            logger.error("Parsing error")
            print(exn)
            exn.save()
        except BadAuth:
            logger.error("Bad username or password. Forgetting password.")
            session.forget_password()
        except Exception:
            logger.exception("Uncaught exception")
        else:
            grading.save('grading.json')
        session.save_cookies()