def testLoadFromFile(self):
     ''' SkemaPackConfig : simple read '''
     self.config = SkemaPackConfig(open('config_test.cfg'))
     self.assertEquals(self.config.get("SkemaScraper", "TeacherId"), "5421", "TeacherId is not correct")
     self.assertEquals(self.config.get("SkemaScraper", "FirstWeek"), "33", "FirstWeek is not correct")
     self.assertEquals(self.config.get("SkemaScraper", "LastWeek"), "52", "LastWeek is not correct")
     self.assertEquals(self.config.get("SkemaScraper", "Year"), "2011", "Year is not correct")
def main():
    myConfig = SkemaPackConfig( SkemaPackConfig_stdin() )
    
    myHtmlGetter = HtmlGetter.htmlGetter()
    htmlResponse = myHtmlGetter.getSkemaWithPost(myConfig.get("SkemaScraper","TeacherId"),\
                                                 myConfig.get("SkemaScraper","FirstWeek"),\
                                                 myConfig.get("SkemaScraper","LastWeek"))
    response = htmlResponse.read()
    
    htmlScraper = SdeSkemaScraper(DateFormat = myConfig.get("SkemaScraper","Dateformat"))
    
    htmlScraper.feed(response)
    

    for Appointment in htmlScraper.Appointments:
        print Appointment
 def testLoadFromCurrent(self):
     os.system("cp config_test.cfg skemapack.cfg")
     self.config = SkemaPackConfig()
     self.assertEquals(self.config.get("SkemaScraper", "TeacherId"), "5421", "TeacherId is not correct")
     self.assertEquals(self.config.get("SkemaScraper", "FirstWeek"), "33", "FirstWeek is not correct")
     self.assertEquals(self.config.get("SkemaScraper", "LastWeek"), "52", "LastWeek is not correct")
     self.assertEquals(self.config.get("SkemaScraper", "Year"), "2011", "Year is not correct")
     os.system("rm skemapack.cfg")
 def testSetGet(self):
     ''' SkemaPackConfig : simple set and read of value'''
     self.config = SkemaPackConfig(open('config_test.cfg'))
     
     SectionToUse =  "SkemaScraper"
     OptionToUse = "MyVal"
     ValueToUse = "Test123"
     self.config.set( SectionToUse, OptionToUse, ValueToUse )
      
     self.assertEquals(self.config.get(SectionToUse, OptionToUse), ValueToUse )
Beispiel #5
0
def main():
    myConfig = SkemaPackConfig( SkemaPackConfig_stdin() )
    
    myHtmlGetter = HtmlGetter.htmlGetter()
    htmlResponse = myHtmlGetter.getSkemaWithPost(myConfig.get("SkemaScraper","TeacherId"),\
                                                 myConfig.get("SkemaScraper","FirstWeek"),\
                                                 myConfig.get("SkemaScraper","LastWeek"))
    response = htmlResponse.read()
    
    htmlScraper = SdeSkemaScraper(DateFormat = myConfig.get("SkemaScraper","Dateformat"))
    
    htmlScraper.feed(response)
    

    try:
        myGmailOutput = GmailOutput_API(myConfig.get("gmail","username"),myConfig.get("gmail","Password"))
    except :
        #TODO : GmailOutput_API should raise a common exception when gdata throws gdata.service.BasAuthentication
        print ( "login to gmail failed - please check username and password")
        exit()
    
    
    for Appointment in htmlScraper.Appointments:
        myGmailOutput.addAppointment(Appointment)
    
    return 0
Beispiel #6
0
def ImportFile( config = None, ConfigSet = "ImportFile" ):
    '''
    Imports events and config from file (or stdin)
    @param config: The config object to use. If None, then we try to use defaults or stdin
    @param ConfigSet: The section of the configuration to use
    @raise KeyError: If supplied ConfigSet is not in config
    @return: (events, config) or (weeksums, config) 
    '''  
    # if no config supplied, use stdin
    if not config:
        # create new config object
        config = SkemaPackConfig( SkemaPackConfig_stdin_eal() )
        # we accept non-existent section when piping from stdin
    else: 
        # check if specified section is present
        if not config.has_section( ConfigSet ):
            raise KeyError("Section \"%s\" not found"%ConfigSet)
            
      
    # read data from file or net
    if not config.has_option(ConfigSet, "Infile"):
        FileToUse = codecs.getreader('utf8')(sys.stdin)
    else:
        filename = config.get(ConfigSet, "Infile")
        try:
            FileToUse = codecs.open( filename, 'r', 'utf-8' )
        except UnicodeEncodeError:
            raise ValueError( u"Illegal filename supplied: %s "%filename)
    # read data from file or net
    if not config.has_option(ConfigSet, "InputDateformat"):
        DateFormat = "%Y-%m-%d"
    else:
        DateFormat = config.get(ConfigSet, "InputDateformat")

    try:
        # read events
        Events = []
        for EventText in FileToUse:
            event = ReadString(EventText, DateFormat )
            if not event:
                continue
            
            Events.append( event )
    
        ret = Events 
    except KeyError:
        # read weeksums
        ws = []
        for WsText in FileToUse:
            event = ReadString(WsText, DateFormat )
            if not event:
                continue
            
            ws.append( event )
    
        ret =  ws 
        
    return (ret, config)
Beispiel #7
0
        --> 
        </style>
    </header>
    <body>
%s
    </body>
</html>
'''
IndexHtmlFilename = "index.html"
LinksHtmlFilename = "links.html"
LinksCsvFilename = "CsvLinks.html"
LinksCsvText = LinksHtmlText

if __name__ == '__main__':
    # Read config/parameter
    config = SkemaPackConfig( open( sys.argv[1] ) )

    # Import from skema
    print "Importing data from zip"
    events, config = ImportTfZip( config )
    print "%d entries extracted"%(len(events)+1,)

    # building list of teachers and classes in dataset
    TeacherList = {}
    ClassList = {}
    for e in events:
        if e['Teacher'] in TeacherList.keys():
            TeacherList[e['Teacher']] += 1
        else:
            TeacherList[e['Teacher']] = 0
 def testTrueFalseConfig(self):
     ''' SkemaPackConfig : simple read of true/false'''
     self.config = SkemaPackConfig(open('TrueFalseTest.cfg'))
     self.assertEquals(self.config.getboolean("TrueFalseTest", "ThisIsTrue"), True )
     self.assertEquals(self.config.getboolean("TrueFalseTest", "ThisIsFalse"), False )
 def testPrintConfig(self):
     ''' SkemaPackConfig : check output string '''
     self.config = SkemaPackConfig(open('config_test.cfg'))
     configstr = str( self.config )
     self.assertEqual( configstr, ConfigStringResult )
Beispiel #10
0
 def testLoadFromHome(self):
     self.config = SkemaPackConfig()
     self.assertEquals(self.config.get("SkemaScraper", "TeacherId"), "5421", "TeacherId is not correct")
     self.assertEquals(self.config.get("SkemaScraper", "FirstWeek"), "33", "FirstWeek is not correct")
     self.assertEquals(self.config.get("SkemaScraper", "LastWeek"), "52", "LastWeek is not correct")
     self.assertEquals(self.config.get("SkemaScraper", "Year"), "2011", "Year is not correct")
Beispiel #11
0
class Test(unittest.TestCase):
    def setUp(self):
        CloneTestData() 
        self._StartDir = ChDirToSrc()
        os.chdir(TempDataDir)
        os.chdir( ConfigWorkDir)
        pass

    def tearDown(self):
        ''' Removes temporary data '''
        RemoveTestData()        
        os.chdir(self._StartDir )
        pass
    
    def testLoadFromFile(self):
        ''' SkemaPackConfig : simple read '''
        self.config = SkemaPackConfig(open('config_test.cfg'))
        self.assertEquals(self.config.get("SkemaScraper", "TeacherId"), "5421", "TeacherId is not correct")
        self.assertEquals(self.config.get("SkemaScraper", "FirstWeek"), "33", "FirstWeek is not correct")
        self.assertEquals(self.config.get("SkemaScraper", "LastWeek"), "52", "LastWeek is not correct")
        self.assertEquals(self.config.get("SkemaScraper", "Year"), "2011", "Year is not correct")
        
    @unittest.skip("Skipped : (MON) How should this work?")    
    def testLoadFromHome(self):
        self.config = SkemaPackConfig()
        self.assertEquals(self.config.get("SkemaScraper", "TeacherId"), "5421", "TeacherId is not correct")
        self.assertEquals(self.config.get("SkemaScraper", "FirstWeek"), "33", "FirstWeek is not correct")
        self.assertEquals(self.config.get("SkemaScraper", "LastWeek"), "52", "LastWeek is not correct")
        self.assertEquals(self.config.get("SkemaScraper", "Year"), "2011", "Year is not correct")
    
    @unittest.skip("(MON) How is this working?")    
    def testLoadFromCurrent(self):
        os.system("cp config_test.cfg skemapack.cfg")
        self.config = SkemaPackConfig()
        self.assertEquals(self.config.get("SkemaScraper", "TeacherId"), "5421", "TeacherId is not correct")
        self.assertEquals(self.config.get("SkemaScraper", "FirstWeek"), "33", "FirstWeek is not correct")
        self.assertEquals(self.config.get("SkemaScraper", "LastWeek"), "52", "LastWeek is not correct")
        self.assertEquals(self.config.get("SkemaScraper", "Year"), "2011", "Year is not correct")
        os.system("rm skemapack.cfg")
        
    @unittest.skip("(MON) How is this working?")    
    def testLoadNoFile(self):
        HomeFileName = os.path.expanduser("~/.skemapack/skemapack.cfg")
        os.system("mv %s %s.old"%(HomeFileName,HomeFileName))
        print "mv %s %s.old"%(HomeFileName,HomeFileName)
        self.assertRaises( exceptions.ValueError, SkemaPackConfig, "" )
        os.system("mv %s.old %s"%(HomeFileName,HomeFileName))
        
    #@unittest.skip("Skipped : Errors related to file locations")    
    def testPrintConfig(self):
        ''' SkemaPackConfig : check output string '''
        self.config = SkemaPackConfig(open('config_test.cfg'))
        configstr = str( self.config )
        self.assertEqual( configstr, ConfigStringResult )

    def testTrueFalseConfig(self):
        ''' SkemaPackConfig : simple read of true/false'''
        self.config = SkemaPackConfig(open('TrueFalseTest.cfg'))
        self.assertEquals(self.config.getboolean("TrueFalseTest", "ThisIsTrue"), True )
        self.assertEquals(self.config.getboolean("TrueFalseTest", "ThisIsFalse"), False )

    def testSetGet(self):
        ''' SkemaPackConfig : simple set and read of value'''
        self.config = SkemaPackConfig(open('config_test.cfg'))
        
        SectionToUse =  "SkemaScraper"
        OptionToUse = "MyVal"
        ValueToUse = "Test123"
        self.config.set( SectionToUse, OptionToUse, ValueToUse )
         
        self.assertEquals(self.config.get(SectionToUse, OptionToUse), ValueToUse )