~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to insert_exercise.py

  • Committer: mattgiuca
  • Date: 2008-07-27 12:24:52 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:956
interpret.py: Fixed error reporting for server errors.
    Previously if gentle==False, just raises the current error - that tells us
    the symptom, not the cause (some random ValueError).
    Now allows the printout to go ahead (as it does for student code), but
    gives a banner heading which explains that a server error occured, to
    differentiate it from student code.
* This allows us to actually read tracebacks which bounce out of the jail.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
import os
 
3
import pg
 
4
import sys
 
5
 
 
6
from common import db
 
7
 
 
8
if __name__ == "__main__":
 
9
    if len(sys.argv) < 2:
 
10
        print >> sys.stderr, "usage: %s filename ..." % sys.argv[0]
 
11
        print >> sys.stderr, "  insert the given filenames as exercises"
 
12
        sys.exit(1)
 
13
 
 
14
    conn = db.DB()
 
15
    for fname in sys.argv[1:]:
 
16
        if not os.access(fname, os.R_OK):
 
17
            print >> sys.stderr, "No permission to read %s" % fname
 
18
            continue
 
19
        spec = open(fname, "r").read()
 
20
 
 
21
        fields = {'identifier':fname, 'spec':spec}
 
22
        
 
23
        try:
 
24
            conn.insert(fields, 'problem', ['identifier', 'spec'])
 
25
        except Exception, e:
 
26
            print >> sys.stderr, "error inserting %s: %s" % (fname, repr(e))
 
27