[Osaas-commits] r9 - in trunk: . server/osaas server/test
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Tue Aug 28 12:54:28 CEST 2007
Author: bh
Date: 2007-08-28 12:54:28 +0200 (Tue, 28 Aug 2007)
New Revision: 9
Modified:
trunk/ChangeLog
trunk/server/osaas/formparser.py
trunk/server/test/test_formparser.py
trunk/server/test/test_osasserver.py
Log:
* server/osaas/formparser.py (Field.deserialize): New method to
support non-string data types
(DateField): New class for fields with date/time values
(Record.set_fields): Deserialize the values of the fields
(form_fields): Turn requesttime into a DateField.
* server/test/test_formparser.py
(FormParsingTests.test_convert_form_urlencoded),
server/test/test_osasserver.py
(OSAASDBServerTests.test_post_with_content)
(OSAASDBServerTests.test_post_with_content_and_filtering): Adapt
to datetime/requesttime changes
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-08-28 10:46:24 UTC (rev 8)
+++ trunk/ChangeLog 2007-08-28 10:54:28 UTC (rev 9)
@@ -1,5 +1,20 @@
2007-08-28 Bernhard Herzog <bh at intevation.de>
+ * server/osaas/formparser.py (Field.deserialize): New method to
+ support non-string data types
+ (DateField): New class for fields with date/time values
+ (Record.set_fields): Deserialize the values of the fields
+ (form_fields): Turn requesttime into a DateField.
+
+ * server/test/test_formparser.py
+ (FormParsingTests.test_convert_form_urlencoded),
+ server/test/test_osasserver.py
+ (OSAASDBServerTests.test_post_with_content)
+ (OSAASDBServerTests.test_post_with_content_and_filtering): Adapt
+ to datetime/requesttime changes
+
+2007-08-28 Bernhard Herzog <bh at intevation.de>
+
* server/osaas/config.py (find_xml_path, find_xml_path_node)
(find_xml_path_text): Split find_xml_path into find_xml_path_node
and find_xml_path_text.
Modified: trunk/server/osaas/formparser.py
===================================================================
--- trunk/server/osaas/formparser.py 2007-08-28 10:46:24 UTC (rev 8)
+++ trunk/server/osaas/formparser.py 2007-08-28 10:54:28 UTC (rev 9)
@@ -8,6 +8,8 @@
"""Parse the OSAAS form data into a record"""
import cgi
+import datetime
+import time
class FormParserException(Exception):
@@ -20,7 +22,18 @@
self.name = name
self.required = required
+ def deserialize(self, s):
+ return s
+
+class DateField(Field):
+
+ def deserialize(self, string):
+ return datetime.datetime(*time.strptime(string.strip(),
+ "%Y-%m-%dT%H:%M:%SZ")[:6])
+
+
+
class Record:
def set_fields(self, fields, formdata, fieldname_normalizer=None):
@@ -40,7 +53,7 @@
value = parsed_form.get(field.name)
if value:
if len(value) == 1:
- setattr(self, field.name, value[0])
+ setattr(self, field.name, field.deserialize(value[0]))
else:
raise FormParserException("only one value allowed"
" for field %r" % field.name)
@@ -49,9 +62,9 @@
" field %r" % field.name)
form_fields = [Field(name, required=True)
- for name in ["user", "responsetime",
- "wmsidextern", "wmsidintern",
+ for name in ["user", "wmsidextern", "wmsidintern",
"requeststring"]]
+form_fields.append(DateField("responsetime", required=True))
request_fields = [
Field("VERSION", required=True),
Modified: trunk/server/test/test_formparser.py
===================================================================
--- trunk/server/test/test_formparser.py 2007-08-28 10:46:24 UTC (rev 8)
+++ trunk/server/test/test_formparser.py 2007-08-28 10:54:28 UTC (rev 9)
@@ -8,6 +8,7 @@
"""Tests for osaas.formparser"""
import sys
+import datetime
import unittest
import traceback
@@ -31,7 +32,8 @@
"%26SERVICE=WMS"])
self.check_attributes(parse_formdata(formdata),
user="karl",
- responsetime="2007-06-01T12:14:16Z",
+ responsetime=datetime.datetime(2007, 6, 1,
+ 12, 14, 16),
wmsidextern="example.com/cgi-bin/fridawms",
wmsidintern="localhost/cgi-bin/myfrida",
requeststring=("VERSION=1.1.1&REQUEST=GetMap"
Modified: trunk/server/test/test_osasserver.py
===================================================================
--- trunk/server/test/test_osasserver.py 2007-08-28 10:46:24 UTC (rev 8)
+++ trunk/server/test/test_osasserver.py 2007-08-28 10:54:28 UTC (rev 9)
@@ -9,6 +9,7 @@
import base64
import threading
+import datetime
import serversupport
import support
@@ -140,7 +141,8 @@
self.assertEquals(len(self.dbrequests), 1)
self.check_attributes(self.dbrequests[0],
user="karl",
- responsetime="2007-06-01T12:14:16Z",
+ responsetime=datetime.datetime(2007, 6, 1,
+ 12, 14, 16),
wmsidextern="example.com/cgi-bin/fridawms",
wmsidintern="localhost/cgi-bin/myfrida",
requeststring=("VERSION=1.1.1&REQUEST=GetMap"
@@ -196,7 +198,8 @@
self.assertEquals(len(self.dbrequests), 1)
self.check_attributes(self.dbrequests[0],
user="karl",
- responsetime="2007-06-01T12:14:16Z",
+ responsetime=datetime.datetime(2007, 6, 1,
+ 12, 14, 16),
wmsidextern="example.com/cgi-bin/fridawms",
wmsidintern="localhost/cgi-bin/myfrida",
requeststring=("VERSION=1.1.1&REQUEST=GetMap"
More information about the Osaas-commits
mailing list