Revision: 4165
Author: janne.t.harkonen
Date: Wed Sep 29 12:16:00 2010
Log: raise exception also from invalid date string
http://code.google.com/p/robotframework/source/detail?r=4165
Modified:
/trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/employeestore.py
=======================================
--- /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/employeestore.py Wed
Sep 29 11:48:53 2010
+++ /trunk/proto/atdd-tutorial-berlin-2010/src/vacalc/employeestore.py Wed
Sep 29 12:16:00 2010
@@ -20,7 +20,7 @@
employees = {}
with open(path) as db:
for row in csv.reader(db):
- employee = Employee(row[0], row[1])
+ employee = Employee(row[0], self._parse_date(row[1]))
employees[employee.name] = employee
return employees
@@ -37,7 +37,7 @@
if name in self._employees:
raise VacalcError("Employee '%s' already exists in the
system" %
name)
- employee = Employee(name, startdate)
+ employee = Employee(name, self._parse_date(startdate))
self._employees[employee.name] = employee
self._serialize(employee)
@@ -48,13 +48,16 @@
writer = csv.writer(db, lineterminator='\n')
writer.writerow([employee.name, employee.startdate])
+ def _parse_date(self, datestring):
+ try:
+ year, month, day = datestring.split('-')
+ return datetime.date(int(year), int(month), int(day))
+ except (TypeError, ValueError):
+ raise VacalcError("Invalid time string '%s'" % datestring)
+
class Employee(object):
def __init__(self, name, startdate):
self.name = name
- self.startdate = self._parse_date(startdate)
-
- def _parse_date(self, datestring):
- year, month, day = datestring.split('-')
- return datetime.date(int(year), int(month), int(day))
+ self.startdate = startdate