# ---------------------------------------------------------------- # This module defines metadata to be used by the batchSVN.py script. # # Copy this module as /class/csse//scripts/batchSVNData.py and # edit it to define the course metadata for . The sample data # in the original file can be used by invoking the batchSVN.py script using # "testing" as the course name argument, e.g.: ./batchSVN.py testing # ---------------------------------------------------------------- import os import sys # ---------------------------------------------------------------- # Hacks the system path so the import of batchSVNTypes works for testing # individual course meta-data on the the server. serverPathToBatchSVN = "/class/csse/resources/Grading" # Change the following line to point to your local checkout of the CSSE # resources trunk if you want to test this file on your local machine: localMachinePathToBatchSVN = "/Users/cclifton/Documents/Rose/Administrative/resources/Grading" sys.path.append(serverPathToBatchSVN) sys.path.append(localMachinePathToBatchSVN) from batchSVNTypes import * # ---------------------------------------------------------------- # ---------------------------------------------------------------- # Local variables # ---------------------------------------------------------------- repoNamePrefix = 'csse120-201320-' # replace the following with a description of the course, like 'CSSE 120' # courseDescription = '\a*** WARNING: USING TEST DATA, NOT COURSE DATA ***' courseDescription = 'csse 120' # ---------------------------------------------------------------- # Defines repositories sets for this course. Used by main script. # ---------------------------------------------------------------- reposSets = [] # first set in the list is the default Section2Students = [ # 201320 robotics "aguilav", "arkfelia", "bencejp", "benshorm", "bickeldh", "brynelnm", "calhouaj", "cheungnj", "conwayem", "crookjj", "doughezj", "duffytj", "evansc", "garrittm", "gauvrepd", "grayka", "hoodletj", "hullzr", "johnsoaa", "kangs", "kethirs", "khusrojd", "kleinegl", "lacygp", "lollieml", "loyerbd", "mccaffjm", "millerjh", "mohdads", "mookher", "nepoted", "patterjs", "phillics", "plugerar", "qiut", "roccoma", "schornjg", "seiberkp", "shankaj", "shumatdp", "sund", "sutherdr", "sweenejr", "thompsa4", "ugenm", "vanakema", "walthecn", "zhongp", "ziegleap", ] Section3Students = [ # 201320 robotics "baileyh", "barrymp", "bevingcj", "blandfaa", "blankesa", "daruwakj", "defelidj", "fittsap", "gehmanic", "gouldsa", "graysomb", "hilldj", "huangd", "joaquima", "johnsotb", "jonesmj", "kellerhj", "leinenak", "lewd", "litwinsh", "liuj1", "luica", "morrismc", "morrisrg", "niemanam", "nixonkd", "oreilljp", "olivernp", "powellmr", "reinerem", "reisms", "smyserme", "songh1", "tatejl", "tebbeam", "terrelze", "turnerse", "wadhwav", "wrightj3", "yey", "yodercl", "zengc", "zhangj1", ] Section4Students = [ # 201320 robotics "adamoam", "alayonkj", "andersnr", "andrewzk", "baix", "bochnoej", "bohnlg", "brodiedc", "burrisns", "diskernm", "gerbernd", "hossaimm", "jagielja", "kieselat", "kwakjw", "lamberjl", "larewcj", "mccammjd", "mcnelljd", "scalajr", "schackma", "wagnercj", "woldema", "wrotenaj", "yuanp", "zhoup", ] reposSets.append(RepositorySet("All students", repoNamePrefix, Section2Students + Section3Students + Section4Students)) reposSets.append(RepositorySet("Special", repoNamePrefix, ["rupakhet", ])) reposSets.append(RepositorySet("David's Section 2 Students", repoNamePrefix, Section2Students)) reposSets.append(RepositorySet("David's Section 3 Students", repoNamePrefix, Section3Students)) reposSets.append(RepositorySet("David's Section 4 Students", repoNamePrefix, Section4Students)) reposSets.append(RepositorySet("Test", repoNamePrefix, ["mutchler"])) # ---------------------------------------------------------------- # Defines project names and unit tests for this course. # Used by main script. # ---------------------------------------------------------------- projects = [] projectNames = [ "Unused (do not select this option)", "Session01_IntroductionToPython", "Session02_InputComputeOutput", "Session03_LoopsAndUsingObjects", "Session04_FunctionsMethodsAndParameters", "Session05_ConditionalsAndAccumulators", "Session06_AccumulatorsAndRobots", "Session07_Sequences", "Session08_Test1Practice", "Session09_AccumulatingSequences", "Session10_Test1", "Session11_WaitingForEvents", "Session12_Robots", "Session13_YetMoreSequences", "Session14_PointersAndMutation", "Session19_NestedLoops", "Test2_Practice_201310", "Test2_201310", "FinalExam_201310", ] for projectName in projectNames: projects.append(Project(projectName)) # ---------------------------------------------------------------- # Defines any additional main menu commands for this course. # Used by main script. # ---------------------------------------------------------------- menuItems = [] # ---------------------------------------------------------------- # Sample code to add a zip command to the menu: # def zipForDownload(data): # if os.access(data.activeProject.name,os.F_OK): # os.system('zip -r %s.zip %s' % (data.activeProject.name, # data.activeProject.name)) # if not os.access(data.activeProject.name + '.zip',os.F_OK): # print '\a\n*** Unable to create zip file ***\n' # return False # menuItems.append(MenuItem('Zip local project subdirectory for download', # zipForDownload)) # ---------------------------------------------------------------- # ---------------------------------------------------------------- # A couple of extra menu items that are useful in a pinch, but aren't yet # sufficiently abstracted for general use. # def copyInExtras(data): # forEachRepo("cp ${scriptDir}/*.java ${shortName}/src/btwp/", data) # return False # menuItems.append(MenuItem('Copy in Exam2 test files',copyInExtras)) # # def runTestsExtraMem(data): # forEachRepo("cd ${shortName} && java -Xmx2000m -cp '${scriptDir}/junit-4.5.jar:bin' org.junit.runner.JUnitCore ${testClasses}", data) # return False # menuItems.append(MenuItem('Run JUnit tests with extra memory',runTestsExtraMem)) # ---------------------------------------------------------------- # ---------------------------------------------------------------- # Some test code, executed if this file is imported directly into # a python shell. Shouldn't need to change this when specifying # course-specific data above. # ---------------------------------------------------------------- if __name__ == '__main__': print "reposSets ==", reposSets print "Repositories from reposSets[0]:" for r in reposSets[0].repos(): print " ", r print "repository names: ", [r.name for r in reposSets] print print projects print "Test classes:" for p in projects: print " %s: %s" % (p.name, p.testClasses) print "Additional Menu Items' Text:" for mi in menuItems: print " ", mi.text